5.mysql学习笔记:复制的原理
2015-11-20 13:10
525 查看
基于语句的复制
在早期的mysql版本中只支持基于语句的复制(也称为逻辑复制),实际上就是把主库上的sql语句再执行一遍。特点:
1.实现简单,只需要执行相关sql语句,能够让主备保持同步。
2.如果语句中包含元数据信息(比如当前时间),则会出现问题。
3.而且更新必须是串行的,这需要更多的锁。
基于行的复制
从mysql5.1开始支持基于行的复制,这种方式将实际的数据记录在二进制文件中。优点:
由于无需重放更新主数据库的查询过程,直接进行复制,所以可以高效的复制数据。
缺点:
有的时候只是需要复制指令,全表的更新,如果使用基于行的复制将会造成大的开销。
mysql可以在基于语句的复制和基于行的复制之间进行动态的切换。默认情况下使用的是基于语句的复制。
下面我们总结下两种复制的优缺点:
基于语句复制的优点:
可以适用多种情况,本质上就是重新执行sql语句。
基于语句复制的缺点:
实用面太窄,比如正在实用触发器或者存储过程,就不要实用基于语句的复制。
基于行的复制模式的优点:
1.对于所有的sql构造、触发器、存储过程等都可以正确地执行。
2.减少了锁的使用;
3.基于行的复制能够帮助快速地找到并解决数据不一致的情况。
基于行的复制模式的缺点:
1.由于语句并没有出现在日志记录里,所以无法判决执行了那些sql。只能知其然不能知其所以然。
相关文章推荐
- mysql提取身份证生日并查询指定月份的数据
- mysql性能对比
- GTID的常见错误和处理方法
- You can't specify target table 'marketing_setting' for update in FROM clause
- MySQL查询本周、上周、本月、上个月份数据的sql代码
- 4.mysql学习笔记:mysql的复制(一)
- mysql user表root 用户误删除解决方法
- 实例讲解Mysql中各种Join的作用
- MySQL命令行导出数据库
- 小白学习mysql之索引初步
- 自定义注解与MYSQL
- mysql主从同步详解和一些细节
- Node.js的mysql执行多表联合查询
- MySQL数据库表锁定的几种方法实现
- 安装mysqlsla性能分析工具
- mysql无法远程连接的解决方法
- Mysql5.7全新的root密码规则
- 21分钟 MySQL 入门教程
- MySQL中使用or、in与union all在查询命令下的效率对比
- mysql case when用法