由于 InnoDB存储引擎是支持事务的,因此 InnoDB存储引擎的应用需要在考虑每秒请求数(Question Per Second,QPS)的同时,应该关注每秒事务处理的能力(Transaction Per Second,TPS)。
计算TPS的方法是(com_commit+com_rollback)/time。但是利用这种方法进行计算的前提是:所有的事务必须都是显式提交的,如果存在隐式地提交和回滚(默认auto_commit=1),不会计算到 com_commit和 com_rollback变量中。如:
mysql> show global status like 'com_commit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_commit | 2 |
+---------------+-------+
1 row in set (0.56 sec)
MySQL数据库中另外还有两个参数handler_commit和 handler_rollback用于事务的统计操作。但是我注意到这两个参数在MySQL5.1中可以很好地用来统计InnoDB存储引擎显式和隐式的事务提交操作,但是在 InnoDB Plugin中这两个参数的表现有些“怪异”,并不能很好地统计事务的次数。所以,如果用户的程序都是显式控制事务的提交和回滚,那么可以通过com_commit和com_rollback进行统计。如果不是,那么情况就显得有些复杂。