mysql 8.0 主从同步性能优化

  关于mysql 8.0的主从同步,网上有提到一些革命性的改变,但是具体怎么配置,没有简单明了的,净是官网文章的翻译,不具实操性。之前有搭建了mysql一主一从集群,主从同步一直效率不高,看网上说基于写集合的并行复制,关键词是writeset,不同事务修改了不同行的数据,那么可以视为同一组。MySQL 会对这个提交的事务中的一行记录做一个 HASH值,这些 HASH 值称为 writeset。writeset会存入一张 HASH 表。其他事务提交时会检查这张 HASH 表中是否有相同的记录,如果不相同,则视为同组,如果有相同,则视为不同组。balabala……我很兴奋的在主mysql上设置了这个参数binlog_transaction_dependency_tracking=writeset,然并卵,同步并没有什么质的飞跃。

  之后一直没时间去继续优化这个事,直到最近因为数据库监控失效,检查数据库状态才发现从mysql已经比主mysql晚了300万多秒,这要同步到猴年马月啊,终于奋起,在官网查阅相关手册,最后找到了所有参数并配置上了,效果目前看比较理想。实操如下:

主mysql:binlog_transaction_dependency_tracking=writeset(但只设这个是没用的)

从mysql:slave_parallel_type=LOGICAL_CLOCK(默认是DATABASE),slave_parallel_workers=1024(最大值1024)

设置时记得重启slave同步(stop slave;start slave)

之后,就见同步象子弹一样飞起来,这才象个样子嘛。分享给大家。

 

你可能感兴趣的:(数据库,mysql)