影响MySQL事务提交延迟的几种情况
在事务执行阶段:
一、锁等待
1、RR 模式下 insert 锁等待gap lock 锁等待导致。
2、Insert 等待 MDL 锁导致 。
3、Table lock。
二、IO 方面
1、慢 sql 导致 io 高。
2、其他程序占用比价高。
3、BP 命中率比较低。
4、并发导致。
5、innodb buffer pool 不够用。
6、Update、delete 更新数据行数大(>W)。
三、Buffer 方面
1、redo log buffer 是否够用通过 Innodb_log_waits 确认。
2、Redo log buffer 刷盘方式通过 innodb_flush_log_at_trx_commit。
3、Binlog cache 是否够用,创建临时文件、消耗 IO。
4、Change buffer 是否够用。
四、落盘延迟
1、sync_binlog 参数。
2、binlog_group_commit_sync_delay 参数。
3、innodb_flush_commit 参数。
4、查看 innodb_buffer_pool 的命中率,查看脏页刷新频率效果。