無論是採用binlog或者GTID的方式,其本質都是通過I/O_thread和sql_thread的形式進行的同步,因為無法避免複製延遲而飽受詬病,基於上述MariaDB引入了Galera Cluster來解決此問題。
Galera Cluster與傳統的複製方式不同,不通過I/O_thread和sql_thread進行同步,而是在更底層通過wsrep實現文件系統級別的同步,可以做到幾乎實時同步,而其上的MySQL對此一無所知
這就要求MySQL能夠調用wsrep提供的API來完成,在Mariadb10.1之前的版本,支持Galera Cluster的版本是與Mariadb分開發行的,其版本名稱就成為Mariadb-Galera,Mariadb10.1以後的版本中MariaDB Galera Cluste不再單獨發行,而是以galera-25.3.12-2.el7.x86_64包的形式出現方面都強過MySQL。
MariaDB Galera Cluster主要功能
同步複製:真正的multi-master,即所有節點可以同時讀寫資料庫自動的節點成員控制,失效節點自動被清除新節點加入數據自動複製真正的並行複製,行級用戶可以直接連接集群,使用感受上與MySQL完全一致
MariaDB Galera Cluster的優缺點
1.優勢:
2.缺點:
還有一些地方存在局限:
1.MariaDB發展趨勢和更新頻率
畢竟基於MySQL創始人領銜開發的MariaDB資料庫,肯定是知道MYSQL資料庫存在的弱項,然後提供更好的兼容性和擴展性,我們基本上完全可以將MYSQL資料庫建議到MariaDB資料庫中,而且MariaDB發展速度和升級速度遠遠優先。
2.MySQL封閉且發展緩慢
由於MySQL在被收購之後更新速度與性能的優化非常的緩慢,而且是閉源的,完全沒有Oracle之外的人參與進來,很多需要解決的問題都沒有升級進去,反之很多公司雖然也有利用自己開發的分支Mysql版本。
3.MariaDB的特點和優勢
MariaDB基於事務的Maria存儲引擎,替換了MySQL的MyISAM存儲引擎,它使用了Percona的 XtraDB,InnoDB的變體,MariaDB默認的存儲引擎是Aria,不是MyISAM。Aria可以支持事務,但是默認情況下沒有打開事務支持,因為事務支持對性能會有影響。MariaDB是一個採用Maria存儲引擎的MySQL分支版本,是由原來 MySQL 的作者Michael Widenius創辦的公司所開發的免費開源的資料庫伺服器。
4.MariaDB與MySQL對比
這個直觀的區別在於MariaDB能夠快速的查詢和處理數據,且占用資源相對是少於MySQL資料庫的,而且在運行速度、以及支持對 Unicode 的排序問題優於MYSQL資料庫。