MariaDB
MariaDB(全稱:MariaDB Community Server)是一個開源的[關係型數據庫管理系統](RDBMS),是[MySQL]的一個分支。它由MySQL的創始人[Michael Widenius]在2009年主導發起,旨在保持開源並避免MySQL在被Oracle收購後可能出現的閉源風險[1][2]。MariaDB保持了與MySQL的高度兼容性,被視為MySQL的直接替代方案,並被廣泛應用於各類網站和企業級系統[3]。
| MariaDB | |
|---|---|
| 中文名 | MariaDB數據庫管理系統 |
| 英文名 | MariaDB |
| 開發者 | MariaDB plc, MariaDB基金會 |
| 首次發布 | 2009年10月29日[4] |
| 編程語言 | C, C++, Perl, Bash[1] |
| 操作系統 | Linux, Windows, macOS[1] |
| 類型 | 關係型數據庫管理系統 |
| 許可協議 | GPLv2, LGPLv2.1(客戶端庫)[1] |
MariaDB的起源與MySQL的商業收購密切相關。2008年,Sun Microsystems收購了MySQL AB公司,隨後Sun在2009年被Oracle Corporation收購。這引發了開源社區對MySQL項目未來發展的擔憂,擔心其有閉源的潛在風險[2]。為了保護MySQL的開源生態,Michael Widenius在2009年基於MySQL的源代碼創建了一個分支,並將其命名為MariaDB,取自他小女兒Maria的名字[3]。
2009年10月29日,MariaDB發布了首個版本5.1.38[4]。最初的大部分原始開發者都加入了該項目,促使MariaDB迅速發展[3]。2012年,為了反映其新增的諸多獨創功能,MariaDB的版本號從5.5直接躍升至10.0,從此與MySQL的版本號分道揚鑣[3]。
MariaDB的治理結構由MariaDB基金會與商業公司MariaDB plc共同構成。其中,MariaDB基金會是一家在美國特拉華州註冊的非營利組織,負責維護代碼的開源性、社區治理和項目的長期連續性,是MariaDB代碼的託管人和社區的守護者[5][6]。而MariaDB plc則是一家商業公司,負責MariaDB Enterprise和SkySQL等企業級產品的開發與銷售,並為社區版貢獻了主要的代碼量[6]。
MariaDB早期版本(直至5.5)均遵循MySQL的版本號方案,旨在實現與之直接替換。此後,MariaDB啟用了獨立的版本體系。
當前的MariaDB採用混合發布模式,包含長期支持版(LTS)、滾動版和開發版。目前最新的長期穩定版是MariaDB 12.3系列(維護至2029年6月),當前的滾動版是MariaDB 13.0,當前的開發版是MariaDB 13.1[7]。
MariaDB 12.3於2026年達到穩定(GA)狀態,引入了一系列新特性,包括基於InnoDB的新二進制日誌實現、對Aria存儲引擎的分段鍵緩存,以及增強了對向量搜索等AI工作負載的支持[8][9]。
| 系列 | 首次發布 | 狀態 | 說明 |
|---|---|---|---|
| 5.1 | 2009年10月 | 已終止 | 首個版本,基於MySQL 5.1[4] |
| 5.2-5.5 | 2010-2012 | 已終止 | 遵循MySQL版本號,用於平滑過渡[3] |
| 10.0 | 2012年11月 | 已終止 | 首個獨立版本號,不再跟隨MySQL[3] |
| 10.1-10.5 | 2015-2020 | 多數已終止 | 長期穩定與創新並行開發 |
| 10.6-10.11 | 2021-2022 | 部分維護中 | 最後一批10.x系列的LTS[7] |
| 11.4 | 2024年2月 | 穩定(LTS) | 長期支持版,維護至2028年2月[7] |
| 11.8 | 2025年2月 | 穩定(LTS) | 長期支持版,維護至2028年6月[7] |
| 12.3 | 2026年2月 | 穩定(LTS) | 最新長期支持版,維護至2029年6月[8] |
| 13.0 | 2026年3月 | 滾動版 | 當前滾動預覽版[7] |
MariaDB沿用了MySQL的可插拔存儲引擎架構。在該架構中,數據庫的核心功能被抽象化,具體的文件管理、索引創建、數據讀寫等操作均由存儲引擎插件負責實現[10]。
MariaDB作為一個由MySQL衍生而來的關係型數據庫,其架構繼承了源自MySQL的可插拔存儲引擎設計,這種高內聚低耦合的架構允許根據特定場景選擇最優的存儲引擎[10]。
存儲引擎是MariaDB架構的核心,負責在物理層面管理數據文件、索引和緩存。用戶在建表時可以為不同的表指定不同的引擎[10]。
主要的存儲引擎包括:
- InnoDB:自MariaDB 10.2起成為默認存儲引擎,支持事務、行級鎖和外鍵,適用於大多數通用的事務處理場景[11]。
- Aria:MariaDB自研的存儲引擎,是MyISAM的現代化改進版,具備崩潰安全性,自MariaDB 10.4起被用作系統表的默認引擎[11]。
- XtraDB:由Percona開發的InnoDB性能增強版,曾是MariaDB 10.1及更早版本的默認引擎,但後續版本已回歸上游InnoDB[11]。
- MyRocks:基於RocksDB的LSM樹存儲引擎,具有高壓縮比和低寫入放大的特點,適合寫密集型和容量敏感的場景[11]。
- ColumnStore:分布式列式存儲引擎,採用大規模並行處理架構,專為大數據分析和數據倉庫場景設計[11]。
- CONNECT:一種特殊的存儲引擎,允許MariaDB直接訪問和查詢外部數據源(如文本文件、其他數據庫等)[11]。
MariaDB作為一款開源數據庫,在保持與MySQL高度兼容的同時,也發展出了一系列獨特的功能擴展。
MariaDB旨在成為MySQL的「直接替代品」。從數據角度看,數據文件和表定義文件(.frm)是二進制兼容的;從客戶端協議看,所有的客戶端API、結構體和端口均與MySQL保持一致。這意味着所有為MySQL編寫的連接器(如PHP、Python、Perl、Java等)無需修改即可與MariaDB協同工作[12]。
不過,隨着兩個項目的獨立演進,兩者間也開始出現差異。例如,在全局事務標識符的實現格式、JSON數據的存儲方式和部分SQL語法上存在不兼容之處。社區建議在遷移前參考官方的兼容性矩陣進行測試[13]。
MariaDB在分布式和高可用架構方面提供了多種解決方案:
- Galera Cluster:一種基於同步複製的多主集群解決方案,能夠提供強一致性保證,支持多節點寫入和自動節點管理。Galera Cluster在MariaDB Community Server 12.3及後續版本中繼續以包含形式提供,確保已有部署的穩定運行[14]。
- MaxScale:一款數據庫代理軟件,用於實現讀寫分離、負載均衡、查詢路由和數據庫防火牆功能。
- Xpand:一種原生的分布式存儲引擎(原MariaDB Xpand),支持自動數據分片和彈性擴展,適用於對水平擴展能力要求極高的場景[15]。
MariaDB還包含了許多高級數據庫特性:
- **虛擬列**:支持生成列,其值由表中其他列計算得出。
- **動態列**:支持在表中存儲非結構化數據,通過鍵值對形式實現NoSQL風格的靈活模式。
- **多源複製**:允許一個從庫同時從多個主庫接收數據變更,便於數據聚合。
- **JSON函數與數據類型**:雖然MariaDB將JSON存儲為LONGTEXT並進行約束檢查,但它提供了一整套JSON函數用於處理非結構化數據[3]。
- **Oracle兼容模式**:提供了SQL模式(SQL_MODE=ORACLE),允許在不需要修改代碼的情況下直接運行部分Oracle數據庫的應用程序[3]。
MariaDB被廣泛應用於全球範圍內的各大企業和開源項目中。
維基百科在2013年遷移了其MySQL數據庫至MariaDB[3]。此外,WordPress.com和Google也是MariaDB的著名用戶[3]。在企業領域,MariaDB被包括新加坡星展銀行(DBS Bank)、Virgin Media O2、諾基亞在內的眾多組織採用[16]。Acronis在其全球備份基礎設施中嵌入了MariaDB,Nextcloud將其作為默認數據庫[6]。
MariaDB擁有龐大的用戶群體。據MariaDB基金會調查,48%的受訪者使用MariaDB已超過10年,且社區反饋顯示MariaDB的使用量正在持續增長[17]。
- ↑ 1.0 1.1 1.2 1.3 Wikipedia: MariaDB
- ↑ 2.0 2.1 百度百科: MariaDB
- ↑ 3.00 3.01 3.02 3.03 3.04 3.05 3.06 3.07 3.08 3.09 MariaDB官方簡介
- ↑ 4.0 4.1 4.2 MariaDB Server turns fifteen!
- ↑ About the MariaDB Foundation
- ↑ 6.0 6.1 6.2 What is MariaDB Foundation
- ↑ 7.0 7.1 7.2 7.3 7.4 MariaDB Release Notes Overview
- ↑ 8.0 8.1 MariaDB 12.3 Changes & Improvements
- ↑ MariaDB Community Server 12.3 LTS: How It Scales AI Workloads
- ↑ 10.0 10.1 10.2 Understanding MariaDB Architecture
- ↑ 11.0 11.1 11.2 11.3 11.4 11.5 Choosing the Right Storage Engine
- ↑ MariaDB versus MySQL - Compatibility
- ↑ MySQL to MariaDB Compatibility Matrix
- ↑ Galera, continuity, and responsibility
- ↑ MariaDB分布式架構深度解析
- ↑ MariaDB Customers
- ↑ State of MariaDB 2025 Survey Results