MySQL事务的学习整理(二)
-----+
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个参数,否则情况就有些复杂。