MySQL5.6开始支持以schema为维度的并行复制,即如果binlog row event操作的是不同的schema的对象,在确定没有DDL和foreign key依赖的情况下,就可以实现并行复制。
社区也有引入以表为维度或者以记录为维度的并行复制的版本,不管是schema,table或者record,都是建立在备库slave实时解析row格式的event进行判断,保证没有冲突的情况下,进行分发来实现并行。
  MySQL5.7的并行复制,multi-threaded slave即MTS,期望最大化还原主库的并行度,实现方式是在binlog event中增加必要的信息,以便slave节点根据这些信息实现并行复制。
MySQL 5.7的并行复制建立在group commit的基础上,所有在主库上能够完成prepared的语句表示没有数据冲突,就可以在slave节点并行复制。
关于MySQL5.7的组提交,我们要看下以下的参数:

mysql> show global variables like '%group_commit%';
+-----------------------------------------+-------+
| Variable_name | Value |
+-----------------------------------------+-------+
| binlog_group_commit_sync_delay                  | 0 |
| binlog_group_commit_sync_no_delay_count | 0 |
+-----------------------------------------+-------+
2 rows in set (0.00 sec)

binlog_group_commit_sync_delay这个参数控制着日志在刷盘前日志提交要等待的时间,默认是0也就是说提交后立即刷盘,但是并不代表是关闭了组提交,当设置为0以上的时候,就允许多个事物的日志同时间一起提交刷盘,也就是我们说的组提交。组提交是并行复制的基础,我们设置这个值的大于0就代表打开了组提交的延迟功能,而组提交是默认开启的。最大值只能设置为1000000微妙。
binlog_group_commit_sync_no_delay_count ,这个参数表示我们在binlog_group_commit_sync_delay等待时间内,如果事物数达到binlog_group_commit_sync_no_delay_count 设置的参数,就会触动一次组提交,如果这个值设为为0的话就不会有任何的影响。如果到达时间但是事物数并没有达到的话,也是会进行一次组提交操作的。
 
参考:https://www.cnblogs.com/shengdimaya/p/6972278.html

最新文章

  1. 一个语句创建Oracle所有表的序列
  2. echart所有汉字都显示中文,就echarts的toolbox注释显示乱码
  3. Windows-005-显示隐藏文件
  4. 准确率(Precision)、召回率(Recall)以及F值(F-Measure)
  5. iOS开发——UI_swift篇&TableView自定义聊天界面
  6. JAXB - Annotations, Class Fields as Attributes: XmlAttribute
  7. sql知识点的积累和使用过的例子
  8. Otacle表查询
  9. java复习(1)---java与C++区别
  10. springmvc(四) springmvc的数据校验的实现
  11. 【java设计模式】【创建模式Creational Pattern】工厂方法模式Factory Method Pattern(多态性工厂模式Polymorphic Factory Pattern、虚拟构造子模式Virtual Constructor Pattern)
  12. js处理json js递归
  13. 访问远程的docker
  14. J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP
  15. Java进阶(十二)JDK版本错误之Unsupported major.minor version 51.0(jdk版本错误)
  16. Python常用高级函数
  17. redis知识汇总
  18. .NET控件集ComponentOne 2018V3发布:新增图表动画及迷你图
  19. 【实战问题】【1】@PostConstruct 服务启动后加载两次的问题
  20. c语言-遍历pci设备(2)mmio访问

热门文章

  1. 8. golang 基本类型转换
  2. Python作图包含type3字体解决方案
  3. 分布式事务解决方案汇总:2PC、3PC、消息中间件、TCC、状态机+重试+幂等(转)
  4. Dire Wolf——HDU5115(区间DP)
  5. [项目实战]训练retinanet(pytorch版)
  6. Springboot 打jar包项目无法访问jsp问题解决方案
  7. django基础篇04-自定义simple_tag和fitler
  8. 2018 Web 开发者路线图[转载]
  9. linux 启动和关闭 MySQL
  10. @RequestBody、@RequestParam、@PathVariable区别与使用场景