天天看点

MySQL 5.7版本新特性连载(五)

本文是基于MySQL-5.7.7-rc版本,未来可能 还会发生更多变化。

1、支持多源复制(Multi-source replication),这对采用分库分表的同学绝对是个超级重磅福音。可以把多个MASTER的数据归并到一个实例上, 有助于提高SLAVE服务器的利用率。不过如果是同一个表的话,会存在主键和唯一索引冲突的风险,需要提前做好规划。

【新特性实践】

MySQL 5.7的多源复制采用多通道的模式,例如用以下方法可以创建多个复制通道,将多个MASTER上的数据复制到同一个SLAVE节点中去:

其他和复制相关的SQL指令和以往也基本一样,只需在加上 FOR CHANNEL 'CHANNEL-NAME' 子句即可。

此外,还支持在线修改replication filter规则,不过不是太建议使用filter规则,因此不重点介绍了。执行下面的SQL命令可以完成filter规则修改:

 

2、支持多线程复制(Multi-Threaded Slaves, 简称MTS),在5.6版本中实现了SCHEMA级别的并行复制,不过意义不大,因为我们线上大部分实例的读写压力基本集中在某几个数据表,基本无助于缓解复制延迟问题。倒是MariaDB的多线程并行复制大放异彩,有不少人因为这个特性选择MariaDB(比如我也是其一,呵呵)。

MySQL 5.7 MTS支持两种模式,一种是和5.6一样,另一种则是基于binlog group commit实现的多线程复制,也就是MASTER上同时提交的binlog在SLAVE端也可以同时被apply,实现并行复制。关于MTS的更多详细介绍可以查看姜承尧的分享 MySQL 5.7 并行复制实现原理与调优,我这里就不重复说了。

值得一提的是,经过对比测试,5.7采用新的并行复制后,仍然会存在一定程度的延迟,只不过相比5.6版本减少了86%,相比MariaDB的并行复制延迟也小不少。

下一期,我们继续讲讲5.7的其他新特性。

延伸阅读:

1.4 What Is New in MySQL 5.7

What’s New in MySQL 5.7? (So Far)

MySQL 5.7 并行复制实现原理与调优

MySQL 5.7版本新特性连载(四)

MySQL 5.7版本新特性连载(三)

MySQL 5.7版本新特性连载(二)

MySQL 5.7版本新特性连载(一)

整理的比较仓促,若有遗漏或失误,请留言,谢谢!

关于MySQL的方方面面大家想了解什么,可以直接留言,我会从中选择一些热门话题进行分享。