1. 程式人生 > >淺談MySQL和mariadb區別

淺談MySQL和mariadb區別

MariaDB是MySQL原始碼的一個分支,在意識到Oracle會對MySQL許可做什麼後分離了出來(MySQL先後被Sun、Oracle收購)。除了作為一個Mysql的“向下替代品”,MariaDB包括的一些新特性使它優於MySQL。

        這兩個資料庫究竟有什麼本質的區別,我看mariadb資料夾BIN中還是mysql*.exe,除了MySQL會被ORACLE閉源外,而mariadb則開源,他倆之間到底還有什麼本質區別沒有?

區別一:

        MariaDB不僅僅是Mysql的一個替代品,它的主要目的是創新和提高Mysql的技術。

區別二:

        MySQL之父Widenius先生離開了Sun之後,覺得依靠Sun/Oracle來發展MySQL,實在很不靠譜,於是決定另開分支,這個分支的名字叫做MariaDB。

        MariaDB跟MySQL在絕大多數方面是相容的,對於開發者來說,幾乎感覺不到任何不同。目前MariaDB是發展最快的MySQL分支版本,新版本釋出速度已經超過了Oracle官方的MySQL版本。

        MariaDB 是一個採用Aria儲存引擎的MySQL分支版本,是由原來 MySQL 的作者Michael Widenius創辦的公司所開發的免費開源的資料庫伺服器。

        這個專案的更多的程式碼都改編於 MySQL 6.0,例如 “pool of threads”功能提供解決多資料連線問題。MariaDB 5.1.41 RC可以到這裡下載,32位和64位已編譯Linux版本,還包括原始碼包。MariaDB基於GPL 2.0釋出。

        所以對於大部分的MySQL使用者來說,從現在主流的MySQL轉到MariaDB應該是沒有什麼難度的。

區別三:

        LAMP架構盛極一時,這離不開MySQL的免費與易用,但是在Oracle收購了Sun之後,很多公司開始擔憂MySQL的開源前景,而最近Oracle進一步閉源的舉措更是讓人難以安心,眾多網際網路公司紛紛開始尋求MySQL的替代方案。

        不得不提的是Apple的遠見,在Oracle收購Sun之初就宣佈遷移到PostgreSQL。但PostgreSQL的設計初衷就不同於MySQL,並不是使用MySQL的大部分網際網路公司合適的解決方案。除了Apple,Google、Facebook、Twitter也大量使用了MySQL,紛紛釋出了自己的MySQL分支/補丁集,併為不少公司所採用。同時,MariaDB、Percona等MySQL分支也漸漸步入大眾的視野。

        根據Wikipedia介紹,MariaDB是一個社群驅動的、採用XtraDb儲存引擎的MySQL分支版本,由MySQL創始人Michael Widenius帶領開發,遵循GPL v2.0協議開源。因為MySQL創始人的介入,MariaDB備受關注,Drupal、MediaWiki、phpMyAdmin、WordPress等眾多應用都宣佈支援MariaDB。

        另外,Wikipedia開發者Asher Feldman之前宣稱已將英文維基的一個從(slave)資料庫從MySQL5.1 + Facebook補丁集遷移到了MariaDB 5.5.28。通過全面測試發現,MariaDB的查詢效率提升了3%-15%,平均提升了8%,而且沒有任何異常發生;以qp為單位,吞吐量提升了2%-10%。由於缺少資料支援,現在還不能得出任何結論,但單從測試結果看來還是非常積極的。

        Asher還表示,join中索引的使用以及查詢優化,特別是子查詢方面,MariaDB都有不少提升,可惜目前還沒有涉及到,完全升級可能還需要1-2個月。最後他強調,效能並不是Wikipedia採用MariaDB的主要原因,他們看中的是MariaDB的開源性,只有這樣才能保證社群的真正開放;此外,MariaDB對MySQL匯出的良好支援也非常重要,效能的提升只是遷移的附屬。