-
主从同步:
(1) 数据库建立主库和从库,从库是主库的备份
(2)主库数据更新,从库数据也要随之更新
(3)主库和从库的物理地址不同,可以保证数据备份
(4)主库只负责写操作(写入数据库),从库只负责读操作(从数据库读出数据),实现数据库读写分离,提高读取效率
(5)很明显,读操作要比写操作多很多,所以一般是一主多从的形式
(6)主库开启binlog日志,数据操作会将sql写入binlog传给从库,从库执行操作实现数据同步 -
主从数据库数据不同步问题:
(1) 问题:主库数据的更新没有及时更新到从库
(2) 结果:从库执行写操作得到的结果与主库数据不一致
(3) 分析:mysql的主从复制都是单线程的操作,主库对所有DDL和DML产生binlog,binlog是顺序写,所以效率很高,从库的IO线程到主库取日志,效率比较高,但执行的时候,DML和DDL的IO操作是随即的,不是顺序的,成本高很多,还可能可slave上的其他查询产生lock争用,由于执行操作也是单线程,所以如果一个操作卡住,后面的操作就会等待前面的操作完成。master可以依靠高并发解决问题,从库却不可以。
(4) 解决:目前无较好的解决方案,只能等待数据同步完成,或者临时切换主库进行读操作,但这样会增加主库的压力。
(5) 预防:一主多从、多从放在多个物理机上、使用缓存等等,都是用来分担读写压力
mysql主从同步原理+主从数据库数据不同步问题分析
最新推荐文章于 2023-11-09 22:29:13 发布