MySQL分支——MariaDB
MariaDB是MySQL源代碼的一個分支,主要由開源社區在維護,采用GPL授權許可。開發這個分支的原因之一是:甲骨文公司收購了MySQL后,有將MySQL閉源的潛在風險,因此社區采用分支的方式來避開這個風險。MariaDB是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。在存儲引擎方面,使用XtraDB來代替MySQL的InnoDB,XtraDB完全兼容InnoDB,創建一個InnoDB表內部默認會轉換成XtraDB。
Percona XtraDB 是 InnoDB 存儲引擎的增強版,用來更好地發揮最新的計算機硬件系統性能,同時還包含一些在高性能環境下的新特性。XtraDB 存儲引擎是完全的向下兼容,在 MariaDB 中,XtraDB 存儲引擎被標識為"ENGINE=InnoDB",這與 InnoDB 是一樣的,所以可以直接用XtraDB 替換掉 InnoDB,而不會產生任何問題。XtraDB 在 InnoDB 的基礎上構建,使 XtraDB 具有更多的特性,更多的參數指標和更多的擴展。從實踐的角度來看,XtraDB 在CPU多核的條件下更有效的使用內存,并且性能更高。從 MariaDB 5.1 開始就默認使用 XtraDB 存儲引擎。
MariaDB由MySQL的創始人Michael (Monty) Widenius主導開發,他早前曾以10億美元的價格,將自己創建的公司MySQL AB賣給了SUN,此后,隨著SUN被甲骨文收購,MySQL的所有權也落入Oracle的手中。MariaDB名稱來自Michael (Monty) Widenius的女兒Maria的名字。
一、MariaDB 10.0和MySQL 5.6的不同之處
MySQL 5.6 的代碼庫的文件結構已經被改動了。比如單個代碼文件已經被分成多個,又或者是某些代碼已經被重新歸類到了不同的文件內。所以要把MariaDB 去配合現在這個文件結構一定是一個非常消耗時間的過程。
MairaDB 5.5 已經有大量的代碼不同于MySQL 5.5 的版本,而且也有很多的新的特征被整合到MariaDB 5.5 中,而這些特征直到 5.6 版本才出現在MySQL中。所以在比較同樣功能的MySQL和MariaDB的版本,同時在完成設計和QA方面的審核后,一個很明顯的結論是MariaDB會是一個更好的產品。在大多數情況下,在選擇 MariaDB的時候,人們會更多地考慮到功能方面的偏好。
MariaDB不僅僅是MySQL的一個替代品。它的主要目的是創新和提高MySQL的技術,MySQL5.6不是一個合適的創新基礎平臺,所以MariaDB團隊就做了下面的事情:
引入了一些新功能(像Multi-source Replication多源復制,基于表的并行復制,Galera Cluster集群,Spider水平分片存儲引擎,TokuDB存儲引擎等),所以需要搞個新版本。
下個版本稱作“MariaDB5.6”是不準確的,因為它不是基于MySQL5.6的,取而代之,MariaDB團隊決定版本號調為10.0。
MariaDB和Percona有什么不同呢?
Percona是僅僅針對InnoDB引擎上做了性能上的改善(稱為XtraDB),而MariaDB在集成了XtraDB存儲引擎之外,還集成了更多的存儲引擎,包括Aria、SphinxSE、TokuDB、Cassandra、CONNECT、SEQUENCE及Spider存儲引擎等,并且在服務器層上做了大量改進,增加了多源復制和基于表的并行復制等。
新聞熱點
疑難解答