在MySQL被Oracle收購以後,越來越多的人對於MySQL的前景表示了擔憂,對於開源的MySQL,或多或少對於Oracle自家的數據庫產品產生沖擊,這個開源免費的MySQL 對於Oracle更多的是包袱而不是資產。比如淘寶就從Oracle轉成了MySQL,一些大型互聯網公司也在推行去IOE(I:IBM,O:Oracle,E:EMC),甲骨文公司收購了MySQL後,有將MySQL閉源的潛在風險,因此社區采用分支的方式來避開這個風險。
Percona
在介紹 Percona 之前,首要要介紹的是XtraDB存儲引擎,在MYSQL中接觸比較多的是MyISAM和InnoDB這兩個存儲引擎,先前的文章:《MySQL MyISAM和InnoDB的區別》也進行了詳細的介紹。
MySQL 4和5使用默認的MyISAM存儲引擎安裝每個表。從5.5開始,MySQL已將默認存儲引擎從MyISAM更改為InnoDB。MyISAM沒有提供事務支持,而InnoDB提供了事務支持。與MyISAM相比,InnoDB提供了許多細微的性能改進,並且在處理潛在的數據丟失時提供了更高的可靠性和安全性。
Percona XtraDB 是 InnoDB 存儲引擎的增強版,被設計用來更好的使用更新計算機硬件系統的性能,同時還包含有一些在高性能環境下的新特性。XtraDB 存儲引擎是完全的向下兼容,在 MariaDB 中,XtraDB 存儲引擎被標識為”ENGINE=InnoDB”,這個與 InnoDB 是一樣的,所以你可以直接用XtraDB 替換掉 InnoDB 而不會產生任何問題。Percona XtraDB 包含有所有 InnoDB's 健壯性,可依賴的 ACID 兼容設計和高級 MVCC 架構。XtraDB 在 InnoDB 的堅實基礎上構建,使 XtraDB 具有更多的特性,更好調用,更多的參數指標和更多的擴展。從實踐的角度來看,XtraDB 被設計用來在多核心的條件下更有效的使用內存和更加方便,更加可用。新的特性被用來降低 InnoDB 的局限性。性能層面,XtraDB與內置的MySQL 5.1 InnoDB 引擎相比,它每分鐘可處理2.7倍的事務。
Percona Server由領先的MySQL咨詢公司Percona發布。Percona Server是一款獨立的數據庫產品,其可以完全與MySQL兼容,可以在不更改代碼的情況了下將存儲引擎更換成XtraDB 。
Percona團隊的最終聲明是“Percona Server是由Oracle發布的最接近官方MySQL Enterprise發行版的版本”,因此與其他更改了大量基本核心MySQL代碼的分支有所區別。Percona Server的一個缺點是他們自己管理代碼,不接受外部開發人員的貢獻,以這種方式確保他們對產品中所包含功能的控制。
官網地址:http://www.percona.com/
MariaDB
MariaDB由MySQL的創始人麥克爾·維德紐斯主導開發,他早前曾以10億美元的價格,將自己創建的公司MySQL AB賣給了SUN,此後,隨著SUN被甲骨文收購,MySQL的所有權也落入Oracle的手中。MariaDB名稱來自麥克爾·維德紐斯的女兒瑪麗亞(英語:Maria)的名字。
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。在存儲引擎方面,10.0.9版起使用XtraDB(名稱代號為Aria)來代替MySQL的InnoDB。
版本方面,MariaDB直到5.5版本,均依照MySQL的版本。因此,使用MariaDB5.5的人會從MySQL 5.5中了解到MariaDB的所有功能。從2012年11月12日起發布的10.0.0版開始,不再依照MySQL的版號。10.0.x版以5.5版為基礎,加上移植自MySQL 5.6版的功能和自行開發的新功能。
相對於最新的MySQL5.6,MariaDB在性能、功能、管理、NoSQL擴展方面包含了更豐富的特性。比如微秒的支持、線程池、子查詢優化、組提交、進度報告等。
官網地址:https://mariadb.org/
Percona OR MariaDB
選擇是已經痛苦的事情,對於上面的兩個數據庫,就是大公司也存在分歧,就像淘寶目前使用的是Percona 5.5.18,而Google\Wikipedia則站在了MariaDB這邊。具體哪一個會走的更遠,我們就拭目以待吧。