MySQL之语句复制与行复制

MySQL复制之语句复制与行复制

这里我们来总结下MySQL复制的两种方式,基于语句的复制与基于行的复制。

一.基于语句的复制

       基于语句的复制,主库会记录造成数据更改的sql语句,并记录到日志中,日志文件除了记录造成数据改变的sql外,还记录了一些元数据信息,如时间戳。

二.基于行的复制

        基于行的复制莫斯会将发生改变的实际数据记录到日志中。

三.行复制与语句复制对比

     

优点 缺点
基于语句的复制模式

1.主备模式不同时,语句复制能够在多种情况下工作。如:主备库的表定义不同但数据结构相同,列的顺序不同。

2.基于语句的复制易于理解,方便定位问题

3.节省带宽。一条更新好几MB数据的语句在日志中可能只占几十字节

1.对于存储过程,触发器等存在大量的bug,不建议使用基于语句的复制模式

2. 更新是串行的,需要引入更多的锁

基于行的复制模式

1.支持所有场景的数据复制,包括sql构造,触发器,存储过程。

2.不需要串行化执行,可以减少锁的使用

3.相对于重放sql会造成很大查询代价却只造成很少行变化的数据的复制,行复制可能会花费更少的时间

1.相对于语句复制行复制会记录更多的二进制日志,导致日志非常庞大,并且会给主库上记录日志和复制增加额外的负载,更慢的日志记录则会降低并发度。

2.当备库表的schema发生改变时会导致复制失败

知识小贴士:作者尽心运营的知识星球社群【请点击:简道源码&&架构分析 加入】可添加运营同学WX:wx454876882),定期的jdk与核心框架源码解析,主流行业解决方案与架构设计资料查阅与下载尽在其中。帮助行业新人和有志于技术的专业人士体系化的学习源码与系统架构,获取业界知名技术峰会和厂商对外公布的主流业务场景的解决方案。同时这个星球也是一个社群,大家可以在社群中结识有识之士,共同探讨,答疑解惑。希望可以通过这个星球帮助大家每日进步一点点,一年持续365天,共勉

本星球 聚焦于Java源码分析,架构解析。低代码,可扩展和高可用架构设计。帮助你更好地学编程,欢迎想进步的同学!仅精品案例的资料整理即物超所值。让我们大家一起每日进步一点点~~,你可以:

1. 阅读星球专属的编程知识和优质文章

2.JAVA知识从点和面,深度挖掘。通过点,形成面。提升自身的技术广度和深度。

3. 加入星球专属交流群,帮你找到学习伙伴、获取每日优质文章推送等

4.业界优秀案例资料学习及下载

5. 和伙伴们一起学习打卡,增加动力,共同进步

6.工作、学习和方法论。如何提升软实力,比如写文章、画架构图、技术产品的营销、社区的运营等等。

7.招聘、面试和晋升。如何提前准备面试,有什么套路?如何提升硬实力,少走弯路?

8.提供简历优化服务哟。本人常年招聘,也就面试了1000+程序员和架构师~~

9.解答你的疑问。

10.每日进步一点点(最重要的一点): 让自己与众不同,每天学习1-2小时源码和架构知识,365天后再回首,1年前的自己可能是个SB吧。用通勤的时间让自己成长,让优秀变成一种习惯。


————————————————
版权声明:本文为CSDN博主「大道化简」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sunhuiliang85/article/details/124909030

你可能感兴趣的:(MySQL,mysql)