Mysql查看sql是否走事务

标签: mysql sql | 发表时间:2014-10-17 19:37 | 作者:ruishenh
出处:http://blog.csdn.net
登陆进入服务器

 

[root@gzmtest_25 ~]# su - mysql

[mysql@gzmtest_25 ~]$ mysql.local

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 126000553

Server version: 5.5.27-log Sourcedistribution

 

Copyright (c) 2000, 2011, Oracle and/or itsaffiliates. All rights reserved.

 

Oracle is a registered trademark of OracleCorporation and/or its

affiliates. Other names may be trademarksof their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' toclear the current input statement.

可以看到监控日志是否开启的选项(off是关闭)on是开启

root@localhost:(none)>show global variables like 'general_log%';

+------------------+---------------------------+

| Variable_name    | Value                     |

+------------------+---------------------------+

| general_log      | OFF                       |

| general_log_file |/data/mysql/log/mysql.log |

+------------------+---------------------------+

2 rows in set (0.01 sec)

 

root@localhost:(none)>

 

root@localhost:(none)>set global general_log=on;

Query OK, 0 rows affected (0.02 sec)

 


查看当前系统日志大小

root@localhost:(none)>system du -h /data/mysql/log/mysql.log

1.7M   /data/mysql/log/mysql.log


开启日志成功

 

 

接下来就可以直接进入shell中根据sql特征来查看我们sql会话信息

[root@gzmtest_25 ~]# grep "forupdate" /data/mysql/log/mysql.log

                126002192 Query select pk fromT_GANTT_CHART where pk =47 for update

<p>//忽略其他的数据了。</p>


 

 

执行看当前会话的信息

 

 [root@gzmtest_25~]# grep 126002192 /data/mysql/log/mysql.log

                   126002192Connect         [email protected] on test

                   126002192Query    /* mysql-connector-java-5.1.6 (Revision: ${svn.Revision} ) */SHOW VARIABLES WHERE Variable_name ='language' ORVariable_name = 'net_write_timeout' OR Variable_name = 'interactive_timeout' ORVariable_name = 'wait_timeout' OR Variable_name = 'character_set_client' ORVariable_name = 'character_set_connection' OR Variable_name = 'character_set'OR Variable_name = 'character_set_server' OR Variable_name = 'tx_isolation' ORVariable_name = 'transaction_isolation' OR Variable_name ='character_set_results' OR Variable_name = 'timezone' OR Variable_name ='time_zone' OR Variable_name = 'system_time_zone' OR Variable_name ='lower_case_table_names' OR Variable_name = 'max_allowed_packet' ORVariable_name = 'net_buffer_length' OR Variable_name = 'sql_mode' ORVariable_name = 'query_cache_type' OR Variable_name = 'query_cache_size' ORVariable_name = 'init_connect'

                   126002192Query    SHOW COLLATION

                   126002192Query    SET character_set_results = NULL

                   126002192Query    SET autocommit=1

                   126002192Query    SETsql_mode='STRICT_TRANS_TABLES'

141017 11:20:49      126002192 Query    SETautocommit=0

                   126002192Query    commit

                   126002192Query    SET autocommit=1

                   126002192Query    select *....sql 太长忽略

                   126002192Query    SELECTCOUNT(last_password_change) FROM T_PF_USER

                   126002192Query    SELECT COUNT(password_salt) FROMT_PF_USER

                   126002192Query    SELECT COUNT(comment_of_attendee)FROM T_PLUGIN_CALENDAR_EVENT_ATTENDEE

                   126002192Query    SELECT COUNT(ext_subscription)FROM T_PLUGIN_CALENDAR

                   126002192Query    SELECTCOUNT(ext_subscription_calendar_binary) FROM T_PLUGIN_CALENDAR

                   126002192Query    SELECTCOUNT(ext_subscription_hash) FROM T_PLUGIN_CALENDAR

                   126002192Query    SELECTCOUNT(ext_subscription_url) FROM T_PLUGIN_CALENDAR

                   126002192Query    SELECTCOUNT(ext_subscription_update_interval) FROM T_PLUGIN_CALENDAR

                   126002192Query    SELECT COUNT(*) FROMT_PLUGIN_TODO

                   126002192Query    SELECT COUNT(*) FROMT_PLUGIN_MEMO

                   //sql太长忽略

                   126002192Query    SELECT @@session.tx_isolation

                   126002192Query    SET SESSION TRANSACTION ISOLATIONLEVEL REPEATABLE READ

                   126002192Query    SET autocommit=0

                   126002192Query    select *....sql 太长忽略

                   126002192Query    select *....sql 太长忽略

                   126002192Query    select  *....sql 太长忽略

                   126002192Query    select  *....sql 太长忽略

                   126002192Query    select  *....sql 太长忽略

                   126002192Query    select pk from T_GANTT_CHARTwhere pk =47 for update

                   126002192Query    select  *....sql 太长忽略

                   126002192Query    select  *....sql 太长忽略

                   126002192Query    select  *....sql 太长忽略

                   126002192Query    select  *....sql 太长忽略

                   126002192Query    select  *....sql 太长忽略

                   126002192Query    select  *....sql 太长忽略

                   126002192Query    select  *....sql 太长忽略

                   126002192Query    select  *....sql 太长忽略

                   126002192Query    select  *....sql 太长忽略

                   126002192Query    select  *....sql 太长忽略

                   126002192Query    select  *....sql 太长忽略

                   126002192Query    update T_GANTT_OBJECT setcreated='2014-08-19 16:56:49', deleted=0, last_update='2014-08-23 14:20:42',duration=0, endDate='2014-08-13 00:00:00', oId=-1, orderValue=20, parentId=237,preId=-1, predecessorOffset=0, progress=100, refId=-1, relationType='start_start',startDate='2014-08-05 00:00:00', id=96, title='01_系统设计',type='activity', visible=1 where pk=238

                   126002192Query    update T_GANTT_CHART setcreated='2014-08-19 16:56:49', deleted=0, last_update='2014-10-17 11:22:18',gantt_objects_as_xml=237, name='3D项目', owner_fk=8,read_access='ALL', settings_as_xml='<ganttChartSettings><title>3D项目</title><openNodes/></ganttChartSettings>',style_as_xml='<ganttChartStyle xTicks="AUTO"width="1000"/>', task_fk=94, write_access='ALL' where pk=47

                   126002192Query    update T_GANTT_OBJECT setcreated='2014-08-19 17:57:01', deleted=0, last_update='2014-08-23 14:20:42',duration=0, endDate='2014-10-18 00:00:00', oId=3, orderValue=20, parentId=241,preId=219, predecessorOffset=0, progress=null, refId=2, relationType='start_start',startDate='2014-10-15 00:00:00', id=100, title='促销数据',type='activity', visible=1 where pk=243

                   126002192Query    commit

                   126002192Query    SET autocommit=1

                   126002192Query    SET SESSION TRANSACTION ISOLATIONLEVEL READ COMMITTED

 


 

 

根据上面的日志明显可以断定了:

当设置SET autocommit=1 之后的sql都是没有走事务的,

当SET autocommit=0之后到commit之前的都是走了事务的。记要完毕。

 

分析完毕后别忘记把日志关闭,不然很影响性能的哦

 

root@localhost:(none)>set global general_log=off;

Query OK, 0 rows affected (0.00 sec)

 

root@localhost:(none)>show global variables like 'general_log%';

+------------------+---------------------------+

| Variable_name    | Value                     |

+------------------+---------------------------+

| general_log      | OFF                       |

| general_log_file |/data/mysql/log/mysql.log |

+------------------+---------------------------+

2 rows in set (0.00 sec)

 

root@localhost:(none)>


 

 

 

 

 

 

作者:ruishenh 发表于2014-10-17 11:37:09 原文链接
阅读:128 评论:0 查看评论

相关 [mysql sql] 推荐:

MySql动态SQL

- - SQL - 编程语言 - ITeye博客
13.7. 用于预处理语句的SQL语法. MySQL 5.1对服务器一方的预制语句提供支持. 如果您使用合适的客户端编程界面,则这种支持可以发挥在MySQL 4.1中实施的高效客户端/服务器二进制协议的优势. 候选界面包括MySQL C API客户端库(用于C程序)、MySQL Connector/J(用于Java程序)和MySQL Connector/NET.

mysql记录耗时的sql

- - 数据库 - ITeye博客
mysql记录耗时的sql. mysql可以把耗时的sql或未使用索引的sql都记录在slow log里,供优化分析使用. 1.mysql慢查询日志启用:. mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢. 这说明slow log功能没有启用,要启用需要修改mysql的配置文件,在配置文件"[mysqld]"里添加如下俩参数:.

全国省市县 SQL (mysql)

- - 学习笔记
此城市区域内容可以配合ip.taobao.com api 使用.. 有些字段没有添加索引,用的时候根据实际情况做修改. 使用mysql来实现lbs(地理位置服务)功能. 10款对开发者有帮助的Android应用. DeployPHP 系列第 1 部分:优化 PHP 和 Oracle. 在 Oracle 和 PHP 中使用 LOB.

mysql的sql优化(前奏)

- - 数据库 - ITeye博客
要优化mysql首先要知道什么地方需要优化,然后才能针对具体问题进行优化. 什么分库分表,建立索引....摆脱不要那么官方好吗. 1.学会和培养使用mysql的查看命令的使用习惯. 什么你忘记如何创建表的语句了. SHOW CREATE TABLE Name: 'SHOW CREATE TABLE' Description: Syntax: SHOW CREATE TABLE tbl_name Shows the CREATE TABLE statement that creates the named table.

MySQL SQL Tuning:深入理解Order By

- - CSDN博客数据库推荐文章
在MySQL中ORDER BY按先后顺序有2种实现方式,先走索引无排序,如果不行,则用FILESORT. 走索引无排序需要满足2个条件:. ①排序字段和执行计划中所利用INDEX的索引键(或前面几个索引键)完全一致. ②表访问方式为index、ref或range [注释:explain输出中的Type可看出].

Mysql查看sql是否走事务

- - CSDN博客数据库推荐文章
可以看到监控日志是否开启的选项(off是关闭)on是开启. 接下来就可以直接进入shell中根据sql特征来查看我们sql会话信息. 126002192 Query select pk fromT_GANTT_CHART where pk =47 for update

//忽略其他的数据了.

利用tcpdump抓取mysql sql语句

- - 学习笔记
这个脚本是我之前在网上无意间找个一个利用tcpdump 抓包工具获取mysql流量,并通过过滤把sql 语句输入. 脚本不是很长,但是效果很好. #!/bin/bash #this script used montor mysql network traffic.echo sql tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | perl -e ' while(<>) { chomp; next if /^[^ ]+[ ]*$/;.

SQL监控:mysql及mssql数据库SQL执行过程监控审计

- - Seay's blog 网络安全博客
   最近生活有很大的一个变动,所以博客也搁置了很长一段时间没写,好像写博客已经成了习惯,搁置一段时间就有那么点危机感,心里总觉得不自在. 所以从今天起还是要继续拾起墨笔(键盘),继续好好维护这个博客,写出心里最真实的想法,写出平时接触到的一些人和事以及一些新的技术. 当然写博客也不是单纯的为了记录,也想通过博客来结交更多的朋友,今天在公司图书馆看到一句话大致说的是“在今天这个年代,已经很难等到三顾茅庐,诸葛亮也需要博客、微博和影响力”,在一年前就曾想过写一篇关于怎样通过博客来提高个人影响力的文章,我会尽快在这个月抽时间写出来,另外最近也看了几本书,过些时候给大家推荐.

PHP+MySQL环境下SQL Injection攻防总结

- rokeyhu - 老王的技术手册 ( 我的新博客:http://huoding.com )
程序员们写代码的时候讲究TDD(测试驱动开发):在实现一个功能前,会先写一个测试用例,然后再编写代码使之运行通过. 其实当黑客SQL Injection时,同样是一个TDD的过程:他们会先尝试着让程序报错,然后一点一点的修正参数内容,当程序再次运行成功之时,注入也就随之成功了. 假设你的程序里有类似下面内容的脚本:.

MySQL 数据库性能优化之SQL优化

- - OurMySQL
注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础. IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是. SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段.