遷移步驟:
1、停止正在運行的Mysql服務
- # systemctl stop mysqld
2、安裝mariadb及升級工具等
- # pacman -S mariadb libmariadbclient mariadb-clients
3、重啟Mysql服務
- # systemctl start mysqld
4、對已存在的庫進行升級
- # mysql_upgrade -p
為什麼要棄用MySQL?
為什麼要棄用Mysql?這其中是有典故:
MySQL之父Widenius先生離開了Sun之後,覺得依靠Sun/Oracle來發展MySQL實在很不靠譜,於是決定另開分支,這個分支的名字叫做MariaDB。
MariaDB跟MySQL在絕大多數方面是兼容的,對於開發者來說,幾乎感覺不到任何不同。目前MariaDB是發展最快的MySQL分支版本,新版本發布速度已經超過了Oracle官方的MySQL版本。
在Oracle控制下的MySQL開發,有兩個主要問題:
1. MySQL核心開發團隊是封閉的,完全沒有Oracle之外的成員參加。很多高手即使有心做貢獻,也沒辦法做到。
2. MySQL新版本的發布速度,在Oracle收購Sun之後大為減緩。Widenius有一個ppt,用數據比較了收購之前和之後新版本的發布速度。有很多bugfix和新的feature,都沒有及時加入到發布版本之中。
以上這兩個問題,導致了各個大公司,都開發了自己定制的MySQL版本,包括Yahoo!/Facebook/Google/阿裡巴巴+淘寶網等等。
MySQL是開源社區的資產,任何個人/組織都無權據為己有。為了依靠廣大MySQL社區的力量來更快速的發展MySQL,另外開分支是必須的。
MariaDB特點:
MariaDB基於事務的Maria存儲引擎,替換了MySQL的MyISAM存儲引擎,它使用了Percona的 XtraDB,InnoDB的變體,分支的開發者希望提供訪問即將到來的MySQL 5.4 InnoDB性能。這個版本還包括了 PrimeBase XT (PBXT) 和 FederatedX存儲引擎。
MariaDB默認的存儲引擎是Aria,不是MyISAM。Aria可以支持事務,但是默認情況下沒有打開事務支持,因為事務支持對性能會有影響。可以通過以下語句,轉換為支持事務的Aria引擎。ALTER TABLEtablenameENGINE=MARIATRANSACTIONAL=1;
MariaDB 是一個采用Maria存儲引擎的MySQL分支版本,是由原來 MySQL 的作者Michael Widenius創辦的公司所開發的免費開源的數據庫服務器。
這個項目的更多的代碼都改編於 MySQL 6.0,例如 “pool of threads”功能提供解決多數據連接問題。
與 MySQL 相比較,MariaDB 更強的地方在於:
Maria存儲引擎PBXT 存儲引擎
XtraDB存儲引擎
FederatedX存儲引擎
更快的復制查詢處理
線程池
更少的警告和bug
運行速度更快
更多的 Extensions (More index parts, new startup options etc)
更好的功能測試
數據表消除
慢查詢日志的擴展統計
支持對 Unicode 的排序
相對於MySQL最新的版本5.6來說,在性能、功能、管理、NoSQL擴展方面,MariaDB包含了更豐富的特性。。比如微秒的支持、線程池、子查詢優化、組提交、進度報告等。
需要注意的是:
MariaDB默認情況下比MySQL需要更多的內存,因為默認情況下需要啟用Aria存儲引擎處理內部臨時表。如果需要MariaDB使用很少的內存(這是以犧牲性能為代價的),可以設置aria_pagecache_buffer_size的值為 1M(默認值為128M)。
編輯推薦】