技术文章
社区活动 | 分布式SQL改造指南分享-高效运维专场
4月13日 DBLE团队资深研发,携带着他多年的分布式中间件的开发和调优经验;结合各大金融和互联网项目的实战经历,讲讲基于分布式中间件的 SQL 改造的最佳实践;希望通过分享 SQL 语句的改造方法和实施原则,给大家在解决 MySQL 大容量、大并发等分布式场景提供参考。
4月13日 DBLE团队资深研发,携带着他多年的分布式中间件的开发和调优经验;结合各大金融和互联网项目的实战经历,讲讲基于分布式中间件的 SQL 改造的最佳实践;希望通过分享 SQL 语句的改造方法和实施原则,给大家在解决 MySQL 大容量、大并发等分布式场景提供参考。
本文要讨论的bug就是来源于Sync 阶段中的那个binlog参数binlog_group_commit_sync_delay,在MySQL 5.7.19中,如果该参数不为10的倍数,则会导致事务在Sync 阶段等待极大的时间,表现出来的现象就是执行的sql长时间无法返回。该bug已在MySQL 5.7.24和8.0.13被修复。
首先分析一下这个场景的加锁情况和死锁原因,然后对于差异的点进行展开,最后总结 insert 的加锁情况(关于 insert 的加锁行为,其实不像 delete 那样简单清晰,里面有一些需要注意的点)。