mysql 高可用6

来源:互联网 发布:知乎 搞笑 编辑:程序博客网 时间:2024/06/04 19:28
然后我们讲一下性能优化
复制优化
InnoDB优化

其他参数优化


MySQL复制
MySQL应用最普遍的应用的技术,扩展成本低
逻辑复制
单线程问题,从库延时问题
可以做备份或读复制
问题很多,但是能解决基本问题




上图是MySQL复制原理图,红框内就是MySQL一直被人诟病的单线程问题


单线程问题也是MySQL主从延时的一个重要原因,单线程解决方案
1.官方5.6+多线程方案
2. Tungsten为代表的第三方并行复制工具
3.sharding



上图是MySQL5.6 目前实现的并行复制原理图,是基于库级别的复制,所以如果你只有一个库,使用这个也意义不大


上图是MySQL复制原理图,红框内就是MySQL一直被人诟病的单线程问题


当然MySQL也认识到5.6这种并行的瓶颈所在,所以在5.7引入了另外一种并行复制方式,基于logical timestamp的并行复制,并行复制也不再首先于库个数,效率会大大提升





上图是5.7的logical timestamp的复制原理图


上图是MySQL复制原理图,红框内就是MySQL一直被人诟病的单线程问题


刚才我也提到MySQL原来只支持异步复制,这种数据安全性是非常差的,所以后来引入了半同步复制,从5.5开始支持



上图是原声异步复制和半同步复制的区别。可以看到半同步通过从库返回ACK这种方式确认从库收到数据,数据安全性大大提高


在5.7之后 ,半同步也可以配置你指定几个从库参与半同步复制,之前版本都是默认一个从库


对于半同步复制效率问题,有一个小的优化的,就是使用5.6+的mysqlbinlog以daemon方式作为从库,同步效率会好很多



关于更安全的复制,MySQL 5.7也是有方案的,方案名叫Group replication   官方多主方案,基于Corosync 实现








上图是MySQL复制原理图,红框内就是MySQL一直被人诟病的单线程问题

0 0