Mysql主从复制和延迟

主从复制的原理

从库读取主库的binlog,写入从库的relay log。从库有个SQL线程在本地重放。

主从延迟产生的原因

1⃣️由于这些操作是串行,所以会和主库有一些延迟。

2⃣️另一个原因是从库的SQL线程只有一个线程,而主库则是多个SQL线程并发写的。

总结:根本原因是主库的写请求QPS太大,导致从库来不及复制。

主从延迟解决

打开并发复制,多开几个SQL线程,但不能从根本上解决主从延迟问题;

读写都在主库上,不推荐;

由于根本原因是主库的写请求QPS太大,所以要么读在写之后做等待,或者写之后不要读;或者做库表迁移,降低主库的写QPS。

 

主从复制数据丢失

写完主库后,从库还没来得及同步,主库就崩溃了。主从复制有一个semi-sync,表示一个写请求到主库至少要和一个从库同步成功才成功,这就是半同步复制。

posted @ 2020-03-28 18:08  guhowo  阅读(174)  评论(0编辑  收藏  举报