MySQL/簡介
有關更一般的介紹,請參閱 SQL 華夏公益教科書.
Structured Query Language 是一種用於處理關係型資料庫的第三代語言。作為一種 3G 語言,它比機器語言更接近人類語言,因此更容易理解和使用。
- IBM 的 Dr. E. F. Ted Codd 在 1970 年描述了資料庫的關係模型。
- 1992 年,ANSI(美國國家標準協會)這個最高機構標準化了大多數基本語法。
- 它被稱為 SQL 92,大多數資料庫(如 Oracle、MySQL、Sybase 等)都實現了標準的一個子集(以及專有的擴充套件,使其通常不相容)。
- 自由軟體 - 以 GPL 2.0 許可證釋出(儘管可以從 Oracle 購買不同的許可證,見下文)
- 成本 - 免費!
- 支援 - 線上教程、論壇、郵件列表 (lists.mysql.com)、付費支援協議。
- 速度 - 可用資料庫中最快的資料庫之一。([1])
- 功能 - 支援大多數 ANSI SQL 命令。
- 易用性 - 減少培訓/再培訓需求。
- 可移植性 - 可以輕鬆地從 Excel 和其他資料庫匯入/匯出資料
- 可擴充套件性 - 適用於包含數十億條記錄和數千億位元組資料以及數十萬個表格的小型資料庫和大型資料庫。
- 許可權控制 - 選擇性地授予或撤銷使用者許可權。
MySQL 採用雙重許可模式
- 根據 GNU 通用公共許可證 2.0 版(在 2007 年之前釋出的版本中允許“或更高版本”):這是一個自由(指自由的)、複製許可軟體許可證,允許您在應用程式中將 MySQL 用於商業和非商業目的,只要您的應用程式是根據 GNU GPL 釋出的。還有一個“FLOSS 異常”,它實際上允許非 GPL 但免費的應用程式(例如,在 PHP 許可證下的 PHP 程式語言)連線到 MySQL 伺服器。該異常列出了一組可以與 GNU GPL 一起用於您的依賴於 MySQL 的免費應用程式的自由和開源軟體許可證。
- 一個所謂的“商業”[1],付費許可證,即 MySQL 授予您將 MySQL 整合到您在自己的組織之外重新發布的非 FLOSS 應用程式的權利的許可證。[2]
MySQL 是自由軟體,因此社群貢獻的一些分支和非官方版本存在。
2008 年,Sun Microsystems 收購了 MySQL,Sun 本身在 2010 年被 Oracle 收購。收購之後,開發流程發生了變化。該團隊開始更不頻繁地釋出新版 MySQL,因此新程式碼的測試較少。社群貢獻也減少了。
2009 年,MySQL 創始人 Monty Widenius 離開了公司,並建立了一家名為 The Monty Program 的新公司。他啟動了一個名為 MariaDB 的新分支。MariaDB 的範圍是
- 匯入所有將新增到主 MySQL 分支中的新程式碼,但對其進行增強以使其更穩定;
- 清理 MySQL 程式碼;
- 新增社群貢獻(新外掛、新功能);
- 開發 Aria 儲存引擎,以前稱為 Maria;
- 提高效能;
- 在伺服器中新增新功能。
許可證是 GNU GPLv2(從 MySQL 繼承)。
MariaDB 的主要平臺是 GNU/Linux,但也適用於一個專有系統。以下儲存引擎已新增
- Aria(也用於內部表)
- PBXT
- XtraDB
- FederatedX
- SphinxSE
- OQGRAPH
- 將來可能會新增其他引擎。
2008 年,MySQL 首席架構師 Brian Aker 離開了專案,啟動了一個名為 Drizzle 的新分支。雖然 Oracle 最初資助了該專案,但 Drizzle 現在由 Rackspace 資助。它的特點是
- 在這個分支中,只有很小一部分 MySQL 程式碼得以保留,其他程式碼都被刪除:Drizzle 伺服器只實現了基本功能;
- 已保留的程式碼已被清理;
- Drizzle 是模組化的:許多功能是或可以作為外掛實現;
- 該軟體針對多 CPU 和多核 64 位機器進行了最佳化;
- 僅支援 GNU/Linux 和 UNIX 系統。
目前還沒有這個分支的公開版本。它的主要許可證將是 GNU GPLv2(從 MySQL 繼承),但儘可能應用 BSD 許可證。
OurDelta 是另一個由 Open Query 維護的分支。第一個分支,版本號為 5.0,基於 MySQL 5.0。5.1 分支基於 MariaDB。OurDelta 包含社群或第三方開發的一些補丁。OurDelta 為一些 GNU/Linux 發行版提供軟體包:Debian、Ubuntu、Red Hat/CentOS。它不適用於其他系統,但原始碼是免費提供的。
Percona Server 是由 Percona 維護的 MySQL 分支。它提供了 ExtraDB 儲存引擎,它是 InnoDB 的分支,還提供了一些主要提高效能的補丁。