MySQL5.7性能与数据安全大幅提升的缘由(2)
通过上述对mysql的事务提交过程中的前段分析,应该可以了解semi-sync的同步机制与异步机制的区别,semi-sync的主从同步机制与异步机制在同步的处理方式上无任何区别,唯一的区别就是semi-sync在事务提交中段(假如设置为after_sync)或者提交后的阶段(after_commit),有一个验证该事务涉及的binlog是否已经同步到从库,而这个同步验证,会拉长整个事务的提交时间,因为事务提交在数据库中几乎是串行(如果按group commit为一个单位,就算是完全地串行),是影响mysql吞吐量的关键点,当这个关键点被拉长,所以对全局的影响就被放大.虽然仅仅多了这么一个确认的动作,但当主库处于semi-sync的同步状态与异步状态的吞吐量相比,相差了好几倍.上述解释就是其真正的原因. 部分历史文章: 2017数据库大会实录-MySQL核心参数含义的源码解析 配置mysql的group replication过程以及遇到的错误 mysql的缓存池中的LRU列表实现机制源码解析 (续)为什么当磁盘IO成瓶颈之后数据库的性能急剧下降—性能更悲剧篇 为什么当磁盘IO成瓶颈之后数据库的性能急剧下降 文章来自微信公众号:数据库随笔 (编辑:ASP站长网) |