MySQL主从延时这么长,要怎么优化?

MySQL主从复制,读写分离是互联网常见的数据库架构,该架构最令人诟病的地方就是,在数据量较大并发量较大的场景下,主从延时会比较严重 。
为什么主从延时这么大?

MySQL主从延时这么长,要怎么优化?

文章插图
 
答:MySQL使用单线程重放RelayLog 。
应该怎么优化,缩短重放时间?
答:多线程并行重放RelayLog可以缩短时间 。
多线程并行重放RelayLog有什么问题?
MySQL主从延时这么长,要怎么优化?

文章插图
 
答:需要考虑如何分割RelayLog,才能够让多个数据库实例,多个线程并行重放RelayLog,不会出现不一致 。
为什么会出现不一致?
答:如果RelayLog随机的分配给不同的重放线程,假设RelayLog中有这样三条串行的修改记录:
update account set money=100 where uid=58;
update account set money=150 where uid=58;
update account set money=200 where uid=58;
如果单线程串行重放:能保证所有从库与主库的执行序列一致 。


    推荐阅读