MariaDB簡介

李錕發表於2012-01-18

《MySQL Crash Course》(中文版《MySQL必知必會》)這本書的後續版本叫做《MariaDB Crash Course》。為何改了個名字呢,這其中是有些典故的。

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預設的儲存引擎是Aria,不是MyISAM。Aria可以支援事務,但是預設情況下沒有開啟事務支援,因為事務支援對效能會有影響。可以通過以下語句,轉換為支援事務的Aria引擎。 ALTER TABLE tablename ENGINE=MARIA TRANSACTIONAL=1;