mariaDB

mariaDB

MariaDB資料庫管理系統MySQL的一個分支,主要由開源社區在維護,採用GPL授權許可 MariaDB的目的是完全兼容MySQL,包括API命令行,使之能輕鬆成為MySQL的代替品。在存儲引擎方面,使用XtraDB來代替MySQL的InnoDB。 MariaDB由MySQL的創始人Michael Widenius主導開發,他早前曾以10億美元的價格,將自己創建的公司MySQL AB賣給了SUN,此後,隨著SUN被甲骨文收購,MySQL的所有權也落入Oracle的手中。MariaDB名稱來自Michael Widenius的女兒Maria的名字。

MariaDB基於事務的Maria存儲引擎,替換了MySQLMyISAM存儲引擎,它使用了Percona的 XtraDB,InnoDB的變體,分支的開發者希望提供訪問即將到來的MySQL 5.4 InnoDB性能。這個版本還包括了 PrimeBase XT (PBXT) 和 FederatedX存儲引擎

基本介紹

  • 中文名:MariaDB資料庫管理系統
  • 外文名:MariaDB
  • 所屬:MySQL的一個分支
  • 主要維護者:開源社區
  • 類別:存儲引擎
  • 進制:二進制
  • 授權許可:GPL
版本,發展,起源,特點,目標,第三方工具,兼容性,

版本

MariaDB直到5.5版本,均依照MySQL的版本。因此,使用MariaDB5.5的人會從MySQL 5.5中了解到MariaDB的所有功能。
從2012年11月12日起發布的10.0.0版開始,不再依照MySQL的版號。10.0.x版以5.5版為基礎,加上移植自MySQL 5.6版的功能和自行開發的新功能。

發展

mariaDB
mariaDB的logo
成立於2009年,MySQL之父Michael “Monty” Widenius用他的新項目MariaDB完成了對MySQL的“反戈一擊”。開發這個分支的原因之一是:甲骨文公司收購了MySQL後,有將MySQL閉源的潛在風險,因此社區採用分支的方式來避開這個風險。 過去一年中,大型網際網路用戶以及Linux發行商紛紛拋棄MySQL,轉投MariaDB陣營。MariaDB是目前最受關注的MySQL資料庫衍生版,也被視為開源資料庫MySQL的替代品。
MariaDB雖然被視為MySQL資料庫的替代品,但它在擴展功能、存儲引擎以及一些新的功能改進方面都強過MySQL。而且從MySQL遷移到MariaDB也是非常簡單的:
1、數據和表定義檔案(.frm)是二進制兼容的
2、所有客戶端API、協定和結構都是完全一致的
3、所有檔案名稱、二進制、路徑、連線埠等都是一致的
4、所有的MySQL連線器,比如PHP、Perl、PythonJava.NET、MyODBC、Ruby以及MySQL C connector等在MariaDB中都保持不變
5、mysql-client包在MariaDB伺服器中也能夠正常運行
6、共享的客戶端庫與MySQL也是二進制兼容的
也就是說,在大多數情況下,你完全可以卸載MySQL然後安裝MariaDB,然後就可以像之前一樣正常的運行。

起源

為何改了個名字呢,這其中是有些典故的。
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默認的存儲引擎是Maria,不是MyISAM。Maria可以支持事務,但是默認情況下沒有打開事務支持,因為事務支持對性能會有影響。可以通過以下語句,轉換為支持事務的Maria引擎。ALTER TABLE `tablename` ENGINE=MARIA TRANSACTIONAL=1;

特點

MariaDB 是一個採用 Maria 存儲引擎的MySQL分支版本,是由原來 MySQL 的作者Michael Widenius創辦的公司所開發的免費開源的資料庫伺服器
mariaDB
MariaDB相關書籍
這個項目的很多代碼都改編於 MySQL 6.0,例如 “pool of threads”功能提供解決多數據連線問題。MariaDB 5.1.41 RC可以到這裡下載,32位和64位已編譯Linux版本,還包括原始碼包。MariaDB基於GPL 2.0發布。
與 MySQL 相比較,MariaDB 更強的地方在於:
PBXT 存儲引擎
FederatedX 存儲引擎
更快的複製查詢處理
更少的警告和bug
更多的 Extensions (More index parts, new startup options etc)
更好的功能測試
數據表消除
慢查詢日誌的擴展統計
支持對 Unicode 的排序
相對於MySQL最新的版本5.6來說,在性能、功能、管理、NoSQL擴展方面,MariaDB包含了更豐富的特性。比如微秒的支持、執行緒池、子查詢最佳化、組提交、進度報告等。詳情見列表。
High Performance
Developers
DBAs
NoSQL
Thread pool
執行緒池
Microsecond precision & type
微秒支持
Segmented MyISAM keycache
MyISAM快取分段
HandleSocket
直接InnoDB/XtrDB訪問
Group commit for the binary log
binlog組提交
SphinxSE for full-text search
SphinxSE全文索引支持
Authentication plugins - PAM, Active Directory
授權外掛程式
Dynamic columns
動態列
Non-blocking client library
非阻塞庫
Subqueries materialize
子查詢最佳化
LIMIT ROWS EXAMINED
LIMIT行檢查限制


GIS functionality
地理信息系統支持
Progress reporting
進度報告

目標

目標是提供一個由社區開發的、穩定的、總是免費的MySQL分支,在用戶級別上兼容主流版本。我們為自己的版本和上游、社區版的互操作性提高而努力。
MariaDB分支與最新的MySQL發布版本的分支保持一致性, 例如MariaDB 5.1.47對應MySQL 5.1.47,等等。

第三方工具

MariaDB的API和協定兼容MySQL,另外又添加了一些功能,以支持本地的非阻塞操作和進度報告。這意味著,所有使用MySQL的連線器、庫和應用程式也將會在MariaDB下工作。在此基礎上,由於擔心甲骨文MySQL的一個更加封閉的軟體項目,Fedora的計畫在Fedora 19中的以MariaDB取代MySQL維基媒體基金會的伺服器同樣也使用MariaDB取代了MySQL。
如下是支持MariaDB的客戶端工具:
DBEdit 一個免費的MariaDB資料庫和其他資料庫管理應用程式
Navicat 一系列Windows、Mac OS XLinux下專有資料庫管理應用程式。Navicat 15 for MySOL是目前業界流行的 MySQL 和 MariaDB 資料庫的前端編輯工具,是視圖可視化的利器,可輕鬆生成關於表之間的關係運算 SOL 命令。該軟體通過對數據表的可視化連線操作,自動生成複雜的多表關係運算的 SOL 命令,並實時返回結果記錄集
HeidiSQL 一個Windows上自由和開放源碼的MySQL客戶端。它支持MariaDB的5.2.7版本和以後的版本。
phpMyAdmin 一個基於網路的MySQL資料庫管理應用程式

兼容性

MariaDB是MySQL的二進制替代品
出於實用的目的,MariaDB是同一MySQL版本的二進制替代品(例如MySQL 5.1->MariaDB 5.1, MariaDB5.2和MariaDB 5.3是兼容的。MySQL 5.5將會和MariaDB 5.5保持兼容)。這意味著:
mysql-client包還可以與MariaDB伺服器一起工作。
這意味著對於大多數情況下,您可以卸載MySQL和安裝MariaDB,可以工作很好。(不需要轉換成任何數據檔案,如果使用同一主版本,比如5.1)。
我們每月會與MySQL代碼庫合併來確保我們的兼容性和得到任何Oracle修正的bug和所有特性。
我們在腳本升級方面也做了大量的工作,從MySQL 5.0升級到MariaDB 5.1比從MySQL 5.0到MySQL 5.1更容易。
這就是說:MariaDB有許多的新選項、擴展,存儲引擎和bug修復,而MySQL是沒有的。您可以在MariaDB分發版本差異頁面找到不同版本的功能特性集。可在MariaDB versus MySQL – Features看到。
MariaDB 5.1與MySQL 5.1的不兼容性
為了讓MariaDB比MySQL提供更多更好的信息,極少情況下MariaDB會出現不兼容情況。
如果使用MariaDB 5.1替代MySQL5.1,您將看到如下列舉的全部已知用戶級不兼容情況:
如果正在使用MariaDB的新命令選項,新特性或新存儲引擎,那么就不能在MySQL和MariaDB之間輕易來回切換了。
MariaDB 5.2與MySQL 5.1的不兼容性
同MariaDB 5.1和MySQL 5.1的一樣,再補充一條:
實際上,MariaDB 5.2是MariaDB 5.1和MySQL 5.1替代品。
MariaDB 5.3與MySQL 5.1和MariaDB 5.2的不兼容性
IGNORE指令並不會忽略所有錯誤(比如致命錯誤),只是會忽略可以安全忽略的那些。
MariaDB 5.5與MariaDB 5.3的不兼容性
XtraDB
XtraDB提供者Percona,在5.5代碼庫並未提供XtraDB所有早些時候的功能特性。正因為如此,MariaDB 5.5也不能提供它們所有功能特性。
在5.5版本中XtraDB缺少的選項
以下選項XtraDB 5.5是不支持的。如果在my.cnf檔案中使用到這些選項,請刪除後再升級到5.5。

相關詞條

熱門詞條

聯絡我們