在autocommit=0
设置的前提下,模拟慢事务和commit慢
如下图所示
一般情况下的总结
1)binlog慢事务中有记录,慢查询没有记录,可能事务中有大量的锁等待信息或者是事务没有及时提交。
2)慢查询有记录,binlog慢事务中没有记录,可能语句本身为自动事务提交,自动提交的事务无法计算慢事务。
3)如果确实是DML语句慢(排除加锁时间)导致的慢事务并且为显示(begin;commit)事务才会同时出现在binlog慢事务和慢查询中。
4)慢查询中出现commit慢和binlog慢事务没有必然的关系,因为记录的时间完全不同。
5)半同步慢ACK和日志刷盘慢会影响到commit慢,都会记录到慢查询(MGR before commit hook 处理慢也会)。
6)如果binlog慢事务和某些慢查询中的select语句时间匹配则可能是事务中包含了select语句导致。