异步复制
优点:异步复制,性能好
缺点:主从之间存在延迟,数据 不一致,可能丢失数据
适用于:追求极致性能、对一致性要求不高的场景
半同步复制
优点:主节点会等待至少1个节点返回后才会提交,提交两种模式,新模式不会丢失数据;到超时时间时,会自动降级成异步复制的模式
缺点:存在等待从节点的开销,性能比异步复制要差一些
适用于:不允许丢失数据的场景
GTID复制
优点:(1)可通过GTID前半段的UUID知道事务最初是在哪个数据库实例提交的(2)GTID有序,保证一个GTID的事务在一个服务器上只执行一次,避免重复执行导致的数据混乱及主从不一致(3)运维方便,不需要指定binlog以及position
缺点:部分SQL不支持GTID,可能要对应用做修改才行
适用于:绝大多数场景,一般只要mysql支持GTID,就建议开启
PXC
优点:(1)使用者角度:多主模式,同步复制,多节点写,且能保证数据一致(2)运维角度:搭建简单,
缺点:(1)同步复制,性能会取决于集群中性能最差的节点,存在短板效应 (2)存在写扩大的问题,节点数不建议超过8个
适用于:对一致性要求非常高的场景,例如:金融业务
MHA
优势:(1)自动故障转移,转移速度快(2)故障转移时会最大程度保持数据一致性 (3)对已有主从复制架构侵入性小
缺点:(1)自身不提供VIP配置工具,需要额外搭建(2)功能是否强大很大程度取决于脚本
适用于:主从复制模式下的各种场景
MGR
优点:(1)既支持单主模式,又支持多主模式,且都能保持数据一致性,官方建议单主模式(2)借鉴了PXC等技术,融合了其优势,性能表现比PXC优越
缺点:多主模式局限性比较多,用的时候需要注意
适用于:对一致性要求比较高的场景、取代PXC的场景