Mysql PXC介绍
在Mysql主从架构上会存在数据弱一致性的问题,数据写入主库之后从库不能马上获取刚刚插入的数据,同时主从复制过程中可能会丢掉数据。而在某些业务场景下我们需要保证数据的强一致性,数据不能丢失,比如交易系统。而PXC就可以保证数据的强一致性。脱胎于MySQLGalera技术的PXC是MySQL服务和工具提供商percona实现的percona xtradb cluster,简称PXC。
PXC提供了读写强一致性的功能,可以保证在任一个节点中写入数据的同时可以同步给其他的节点,其他任一个节点都可以进行读取操作,每个节点的数据是完全一致的。PXC集群里任何一个节点数据都是可读可写,可以读写任何一个节点里的数据。
PXC的优点:
1.实现mysql数据库集群架构的高可用性和数据的 强一致性。
2.完成了真正的多节点读写的集群方案。
3.改善了传统意义上的主从复制延迟问题,基本上达到了实时同步。
4.新加入的节点可以自动部署,无须提供手动备份,维护起来很方便。
5.PXC集群数据同步是双向的,在第一个节点写入数据,那么会同步其他的节点上。由于是多节点写入,所以数据库故障切换很容易。
PXC的缺点:
1.新加入的节点开销大,需要复制完整的数据。采用SST传输开销太大。
2.任何更新事务都需要全局验证通过,才会在每个节点库上执行。集群性能受限于性能最差的节点,也就是经常说的短板效应。
3.因为需要保证数据的一致性,所以在多节点并发写时,锁冲突问题比较严重。
4.存在写扩大问题,所有的节点上都会发生些操作。
5.只支持innodb存储引擎的表。
6.没有表级别的锁定,执行DDL语句操作会把整个集群锁住,而且也 kill 不了(建议使用Osc操作,即在线DDL)
7.所有的表必须含有主键,不然操作数据时会报错。