MySQL遷移到MariaDB的步驟 遷移步驟: 1、停止正在運行的Mysql服務 Java代碼 # systemctl stop mysqld 2、安裝mariadb及升級工具等 Java代碼 # pacman -S mariadb libmariadbclient mariadb-clients 3、重啟Mysql服務 Java代碼 # systemctl start mysqld 4、對已存在的庫進行升級 Java代碼 # 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)。