現在選擇繼續使用mysql或拋棄它切換到mariadb有足夠的理由。
mysql和mariadb的效能比較
現在把目光移到benchmark上面來,它其實也是由mariadb團隊開發的,並加了一下額外的說明。這篇部落格提到了乙個有趣的地方:把mysql5.6的執行緒數一直增加到16,效能都很好,但是超過了16的話,儘管效能也有提公升一點點,但比較發現,遠不如其他版本(包括mairadb-5.5.28a和mairadb-10.0.1;參考文章頂部的效能測試圖)。這在單核計算機裡面試圖達到多核多執行緒的效果的並行程式時,都會有此類的通病。如果演算法設計得當,隨著cpu核心數的增加,效能也會跟著提公升。當然問題是,你必須在並行程式中處理好2個方面:(1)跨多核的多執行緒問題(2)向量化。這也是當前面向多核程式設計的兩個方向,你編寫的必須能很好的控制這兩個方面。
如果沒有正確的編寫**將會得到乙個共同的結果,即在用8到16個執行緒的開始你就想看到好的結果,但在這些執行緒執行之後你不會看到你期望的結果。你將會看到這個問題,這意味這可能是演算法問題。(這也不是超執行緒或是硬體執行緒造成的)這就是我們在這裡看到mysql 基準的問題。對於我來說,這就是mysql規模化產生問題的跡象,這也是令人擔心的原因之一。mariadb在同樣的基準中也有一些小問題,但是比mysql要輕微的多,只能說是勉強吧;我推測這個問題在平行計算中可能不會出現。
我也不知道在測試中怎樣才能很好的根據不同機器指定不同的編譯器來與之匹配。當你為intel編譯**時,你需要為目標機器編譯生成合適的simd**;如果不匹配,你將不會得到你所期望執行的向量**。為了能正確處理,你需要在**中插入正確的編譯指示**,然後要寫下正確的向量演算法,最後在選擇合適的編譯器。我知道這樣看起來很愚笨,但我看過乙個發行產品用錯誤的編譯器所造成的結果是你無法想象的。好歹,很明顯,mysql**在多核和向量化中的優化沒有mariadb好。
(我真正想看到的是,mysql或mariadb的乙個分支為intel xeon phi處理器核心做乙個特別的編譯,使**轉移到61 核心協處理器,並且有人能嘗試加速所有244個執行緒。可惜我沒有接觸過這樣的機器。同樣的,如果你想學習更多關於向量化和並行方式編寫**方面的知識,檢索最近intel公司 james jeffers 與 james reinders寫的文章「intel xeon phi 協處理器高效能程式設計」。)
很明顯,mariadb的新特性並不是都這麼好——你可能需要連線 cassandra 來獲取一些資料,但是我很懷疑你會使用 mysql 去做這件事情。關於這個平台上提供的其他引擎也有類似的爭議。mariadb的效能看起來在多核環境下表現不錯,但是我強烈懷疑其實通過調優,mysql 也可以做到。
所以你還應該轉移到 mariadb 嗎?
首先,考慮潛在的風險(高層管理者都喜歡聽風險和利益)。如果你遷移到 mariadb,你可能會使用特定於 mariadb 的特性(但目前似乎還不可能),然後發現很難再用很小的資源切換回 mysql 。但是我想說的是,這個並不真的是乙個風險,下面從更大的範圍裡討論一些問題。
考慮一下關於 oracle 以及 oracle 對 mysql 授權的問題。免費以及開源的 mysql 要與 oracle 極具競爭力的專有軟體競爭。那麼,oracle 會做什麼事情阻止 mysql 的開發呢?(一些人可能會說,這樣的事情已經發生了)
那麼,mysql 和 mariadb 的相容性如何呢?mariadb 團隊正盡力去保持對 mysql 的全面相容,他們繼續向原始碼中提交 bug 修復。但那些新特性(以及版本方案)表明,儘管盡了最大的努力,這兩個平台還是會繼續**。
如果 oracle 向 mysql 新增 mariadb 不採納的新特性,這些特性明顯不會對你可用。如果你正在使用 mysql 不具備的 mariadb 特性,你將不能輕易地切換到 mysql 。 mariadb 表示這樣的情況很可能存在一段時間,然而你也不能說相同的情況不會在 mysql 中出現。就是說,即使 mariadb 的新特性並不那麼有用,但是(在我看來)已經有足夠的理由從 mysql 遷移到 mariadb 了。
(在結束這篇文章前說一件事:即在 blogosphere 的作者提出過的乙個關鍵問題——服務協議。如果在你的公司總經理瘋狂到向 oracle 購買了服務協議來幫助你開發管理 mysql 資料庫,那麼你可能願意停留在mysql 以避免因為違反協議而造成的財務和法律上的問題。但除此以外,我看不到什麼理由繼續使用 mysql 資料庫)
文章**:
MariaDB和MySQL效能測試比較
現在選擇繼續使用 mysql或拋棄它切換到mariadb有足夠的理由。現在把目光移到benchmark上面來,它其實也是由mariadb團隊開發的,並加了一下額外的說明。這篇部落格提到了乙個有趣的地方 把mysql5.6的執行緒數一直增加到16,效能都很好,但是超過了16的話,儘管效能也有提公升一點...
再見,MySQL!效能被 MariaDB 吊打 ?
mysql的歷史可以追溯到1979年,它的創始人叫作michael widenius,他在開發乙個報表工具的時候,設計了一套api,後來他的客戶要求他的api支援sql語句,他直接借助於msql 當時比較牛 的 將它整合到自己的儲存引擎中。但是他總是感覺不滿意,萌生了要自己做一套資料庫的想法。一到1...
如何備份和恢復Mysql或mariaDB資料庫
以root登入 將root使用者 名 密碼 儲存到 root my.cnf client user root password yourmysqlrootpassword 並將 許可權改為 600chmod 600這樣 就只能 root 使用者 進行讀寫了 備份某乙個使用者的 資料庫 mysqldu...