MySQL事务的学习整理(二)

2014-11-24 15:47:40 · 作者: · 浏览: 4
-----+ 4 rows in set (0.00 sec) mysql> insert into z select 1; Query OK, 1 row affected (0.00 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> select * from z; +---+ | a | +---+ | 1 | +---+ 1 row in set (0.00 sec) mysql> show global status like'com_commit'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Com_commit | 0 | +---------------+-------+ 1 row in set (0.00 sec) mysql>

可以看出来Com_commit 始终为0 ,这就是隐式提交的时候,不计入com_commit和com_rollback中的。
另外mysql还有2个参数 handler_commit和handler_rollback,这2个参数在mysql5.1种可以很好的统计innodb的显示和隐式的事务提交操作,而在innodb plugin中这2个参数的统计值有些怪异,不能很好的统计事务的次数。
[sql] 
mysql> show global status like'Handler_commit';  
+----------------+-------+  
| Variable_name  | Value |  
+----------------+-------+  
| Handler_commit | 17    |  
+----------------+-------+  
1 row in set (0.00 sec)  
   
mysql> show global status like'Handler_rollback';  
+------------------+-------+  
| Variable_name    | Value |  
+------------------+-------+  
| Handler_rollback | 0     |  
+------------------+-------+  
1 row in set (0.00 sec)  
   
mysql>  

因此如果都是显示控制事务的提交和会滚得话,可以用com_commit com和rollback这2个参数,否则情况就有些复杂。