歡迎您光臨本站 註冊首頁

MariaDB 10.0 和 MySQL 5.6 有何不同

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

去年的5月,我第一次在博客上介紹了關於MariaDB 10.0。 我們當時收到很多的反饋,在進行眾人意見總結后,我們再次的更加深入的解釋過MariaDB 10.0. 在新的一年的伊始,隨著MariaDB 10.0 的 Alpha版本的推出,現在應該是時候再多說一點關於MariaDB 10.0, 特別是它和MySQL 5.6的一些區別,而這個問題也是我和很多身在MariaDB項目里的人都常常被問及的問題。

首先, 我要著重詳述下為什麼我們沒有把MySQL 5.6 直接拿過來作為二次開發的基礎,去做一個產品,可以唄稱為 MariaDB 5.6. 這個原因的細節我們直接都沒有和眾人分享。

1. MySQL5.6 的代碼庫的文件結構已經被改動了。比如單個代碼文件已經被分成多個,又或者是某些代碼已經被重新歸類到了不同的文件內。所以要把MariaDB 去配合現在這個文件結構一定是一個非常消耗時間的過程。而其實我確實不是很明白MySQL為什麼要改動現有的文件結構。

2. MairaDB 5.5 已經有大量的代碼不同於MySQL 5.5 的版本,而且也有很多的新的特徵被整合到MariaDB 5.5 中,而這些特徵知道 5.6 版本 才出現在MySQL中。所以我們在比較同樣功能的MySQL 和MariaDB的版本,同時在完成設計和QA方面的審核后,一個很明顯的結論是MariaDB會是一個更好的產品。在大多數情況下,在選擇MariaDB的時候,人們會更多的考慮到功能方面的偏好。

3. 所以MySQL的新代碼,至少是修改bug的代碼以後都沒有必要進行相應的測試了。我們試想一下,當有這樣一個功能要加入到一段代碼中,而這個功能原本就是來源於這段代碼的情況下,測試將是一個異常重要的過程來保證這個功能的正常運行。

和上文中提到的第二點和第三點一樣,Stewart Smith在Percona寫到關於Mysql最後安全補丁的回歸測試和QA如何測試使用MariaDB工程,以及保存在Percona伺服器用作回歸測試的測試用例的重要性。參考:wrote yesterday about the latest security fix in MySQL introducing a regression

MariaDB不僅僅是Mysql的一個替代品。它的主要目的是創新和提高Mysql的技術,Mysql5.6不是一個合適的創新基礎平台,所以我們就做了下面的事情:

1.由於我們引入了一些新功能(像 multi-source replication多源複製, Cassandra integration, engine independent statistics獨立統計系統等),所以我們需要搞個新版本。通常當你引入新功能時,你需要新建個版本。

2.下個版本稱作“MariaDB5.6”是不準確的,因為他不是基於Mysql5.6,取而代之,我們決定版本號調為10.0

3.MariaDB引入Mysql5.6作為一種替代方案的話,需要提升很多功能,我們已經邁出了第一步,正朝著合併或者重建Mysql5.6的功能方向發展。

首先,mariadb 10.0是一個主要資料庫版本,比如組合后的innodb與組合后性能架構,和一個新的全局執行事務id。夏日裡,mariadb 10,有可能被當做GA開放式資料庫。(註釋)

通過階梯式的方法,我們的最終目的是聚合或者重新實現mysql5.6的所有功能特色。重新實現的所有功能特色都將同它們的mysql版本兼容。到此為止,maria 10將全面兼容mysql5.6版本。除了頂部框架之外,其中含有眾多附加的mariadb資料庫的唯一的功能。

重新實現功能的決定很簡單。如果從我們或者用戶的角度來看,MySQL 5.6缺乏該功能,那麼我們就重新實現它。重新實現的決定並不是因為“我想這樣做”,或者受“非自主發明綜合征”的影響。每個問題都是經過認真而廣泛的討論的。你可以加入郵件列表來參與這些討論,並且讓我們聽到你的聲音,郵件列表是 https://launchpad.net/~maria-developers網站上的 [email protected]

我們是不是有其他的選擇。答案是 Yes。我們本可以把最新版本的MySQL 5.6 拿過來作為MariaDB 5.6 的基礎,然後在其之上進行修修補補。但是,我們需要意識到的是:MariaDB 不是一個附加的補丁程序。雖然MairaDB 實在MySQL的基礎上建立起來的,但是我們有很多的工程師正在努力工作,他們的功勞是不可低估的。不得不提的是,我們全職的MariaDB 的工程師和QA人員一直在努力MySQL 技術可以更好地為MairaDB服務。

當然,還有另外一條路可以走,就是不再依賴於MySQL,並且不再兼容MySQL,如此,我們將稱為一個獨立的個體。但是我們不太採取這樣的方案。因為我們和眾多的MariaDB的用戶都收益於MySQL的功能,也很想MariaDB也同樣可以有這些特徵。

MariaDB 5.5 已經為MairaDB打下一片天地,而且我們自然也會乘機而上。現在,每周都會有更多的下載量,更多的分支是基於MariaDB的,而且更為重要的是已經很越來越多的大型運用案例是在採用MariaDB。

我們在進行MariaDB項目的過程中,一直都努力讓MariaDB成為MySQL的一個替代品,而且同時也會有更多的可實現的創新,而這兩點,我們一直都很小心地把握一個平衡來分配我們的投入。當然,沒有傳新,MariaDB永遠都不會是一個真正的產品。

加入MariaDB和SkySQL的聯合路演,您可以獲得更多更新的關於MariaDB的消息。我們也很期待聽到你們的建議和意見。路由的時間表和預訂信息見here.

 

 



[火星人 ] MariaDB 10.0 和 MySQL 5.6 有何不同已經有1290次圍觀

http://coctec.com/docs/program/show-post-71301.html