Mysql PXC介紹mysql
在Mysql主從架構上會存在數據弱一致性的問題,數據寫入主庫以後從庫不能立刻獲取剛剛插入的數據,同時主從複製過程當中可能會丟掉數據。而在某些業務場景下咱們須要保證數據的強一致性,數據不能丟失,好比交易系統。而PXC就能夠保證數據的強一致性。脫胎於MySQL Galera 技術的PXC是MySQL服務和工具提供商percona實現的percona xtradb cluster,簡稱PXC。sql
PXC提供了讀寫強一致性的功能,能夠保證在任一個節點中寫入數據的同時能夠同步給其餘的節點,其餘任一個節點均可以進行讀取操做,每一個節點的數據是徹底一致的。PXC集羣裏任何一個節點數據都是可讀可寫,能夠讀寫任何一個節點裏的數據。數據庫
PXC的優勢:架構
1.實現mysql數據庫集羣架構的高可用性和數據的 強一致性。併發
2.完成了真正的多節點讀寫的集羣方案。工具
3.改善了傳統意義上的主從複製延遲問題,基本上達到了實時同步。性能
4.新加入的節點能夠自動部署,無須提供手動備份,維護起來很方便。spa
5.PXC集羣數據同步是雙向的,在第一個節點寫入數據,那麼會同步其餘的節點上。因爲是多節點寫入,因此數據庫故障切換很容易。事務
PXC的缺點:部署
1.新加入的節點開銷大,須要複製完整的數據。採用SST傳輸開銷太大。
2.任何更新事務都須要全局驗證經過,纔會在每一個節點庫上執行。集羣性能受限於性能最差的節點,也就是常常說的短板效應。
3.由於須要保證數據的一致性,因此在多節點併發寫時,鎖衝突問題比較嚴重。
4.存在寫擴大問題,全部的節點上都會發生些操做。
5.只支持innodb存儲引擎的表。
6.沒有表級別的鎖定,執行DDL語句操做會把整個集羣鎖住,並且也 kill 不了(建議使用Osc操做,即在線DDL)
7.全部的表必須含有主鍵,否則操做數據時會報錯。