三大歷史階段
| 階段 | 時間跨度 | 核心事件 | 關鍵人物 |
| 初期開源階段 | 1979~2008 | Unireg → MySQL 1.0 → 3.23/4.0/4.1/5.0/5.1、MySQL AB 成立、GPL 開源、InnoDB/BDB 引擎整合 | Monty Widenius、David Axmark、Heikki Tuuri |
| Sun MySQL 階段 | 2008.01~2009.04 | Sun 以 $1B 收購 MySQL AB、大量推廣優化、5.1 發布 (分區/事件/Row 複制/NDB Cluster) | Sun 高管團隊、MySQL 團隊 |
| Oracle MySQL 階段 | 2009.04~至今 | Oracle 以 $7.4B 收購 Sun、InnoDB 早已被收購 (2005)、5.5/5.6/5.7/8.0 迭代、半同步複制、CTE/窗口函數、JSON、GIS、熱備份、Clone Plugin | Oracle 管理層、MySQL 團隊 (Monty 已離開) |
關鍵里程碑時間軸
- 1979: Monty 為 TcX 寫報表工具 Unireg (BASIC → C、UNIX 移植)
- 1990: 客戶需 SQL 支援,Monty 嘗試集成 mSQL 失敗,決心自研 SQL 層
- 1996.10: MySQL 3.11.1 發布 (無 2.x),Solaris 二進制 → 1 個月後 Linux 版
- 1998.01: MySQL 關係型數據庫首個版本,多線程、多語言 API、完整操作符
- 1999~2000: MySQL AB 瑞典成立、與 Sleepycat 合作 BDB 引擎 → 支援事務
- 2000.04: ISAM 整理為 MyISAM
- 2001: Heikki Tuuri 提議整合 InnoDB (事務 + 行鎖) → 3.23 整合、4.0 正式結合
- 2003.12: MySQL 5.0 發布:視圖、存儲過程、觸發器、游標、XA 事務
- 2008.01.16: Sun 收購 MySQL AB ($1B)
- 2008.11: MySQL 5.1 發布:分區、事件調度器、Row-based 複制、NDB Cluster 磁盤數據
- 2009.04.20: Oracle 收購 Sun ($7.4B),MySQL 進入 Oracle 時代
- 2010.12: MySQL 5.5 發布:半同步複制、SIGNAL/RESIGNAL、InnoDB 成為預設引擎
- 2013.02: MySQL 5.6 發布:GTID、線上 DDL、性能結構、ICP、MRR、更優化器
- 2015.10: MySQL 5.7 發布:JSON、GIS、sys schema、Clone Plugin、並行複制 (LOGICAL_CLOCK)
- 2018.04: MySQL 8.0 GA:CTE、窗口函數、隱藏索引、即時加列、資源組、CTE 物化優化
主要分支版本溯源 (開源賦予的分支權)
MariaDB —— Monty 回鍋之作
- 緣起: Oracle 收購 Sun 後,Monty 擔心 MySQL 閉源/發展受控,2009 年分支
- 核心差異:
- 預設存儲引擎:MariaDB (原 MyISAM 增強版) / ColumnStore (列式) / MyRocks (RocksDB)
- 優化器增強:Hash Join、Semi Join 優化、Cost-based Join Order、直方圖統計
- 新功能:Sequence Engine、Window Functions (早於 MySQL)、JSON 函數增強、PL/SQL 兼容模式
- 整合引擎:Spider (分片)、Connect (異構數據源)、CassandraSE
- 版本對應: MariaDB 5.5 ≈ MySQL 5.5、10.0 ≈ 5.6、10.1 ≈ 5.7、10.2+ ≈ 8.0+ (功能超前)
- 命名由來: Monty 小女兒 Maria → MariaDB;大女兒 My → MySQL;兒子 Max → MaxDB (SAP 合作)
Drizzle —— 微內核雲原生探索
- 基於: MySQL 6.0 代碼庫 (從未 GA)
- 特點: 微內核、插件化架構、去除弗蘭肯斯坦代碼、專為多核/雲/高併發設計、支援 HTTP/REST 接口、無 FRM 文件、數據字典內建
- 現狀: 社區活躍度低,思想影響了 MySQL 8.0 數據字典重構
Percona Server —— 企業級性能強化版
- 定位: 完全兼容 MySQL、InnoDB 深度優化 (Fast Index Creation、Buffer Pool Dump/Load、Thread Pool、Audit Log、加密表)
- 殺手級工具: XtraBackup (開源、免費、InnoDB 熱備份、增量、流式、壓縮)、PM (Performance Monitoring)、Toolkit (pt-query-digest/pt-online-schema-change/pt-archiver 等)
- 版本對應: 緊跟 MySQL GA 版本發布對應分支
InnoSQL (筆者分支) —— 創新實驗田
- 目標: 生產環境可用的創新功能
- 獨有功能:
- InnoDB Flash Cache (SSD 作為 L2 緩衝池,比 FB 方案性能高 1 倍+)
- InnoDB Shared Memory (共享內存預熱,秒級恢復 Buffer Pool 狀態)
- IO Statistics (Slow Log 擴展邏輯/物理讀統計,SQL 調優利器)
- 兼容性: 全兼容 Oracle MySQL,功能動態開關,關閉即原版行為
命名趣聞:一個家族的數據庫傳承
- MySQL: Monty 大女兒 **My**
- MaxDB: Monty 兒子 **Max** (SAP 合作產物)
- MariaDB: Monty 小孫女 **Maria**
一個程序員父親、三個代碼孩子,見證了開源數據庫三十年興衰更替。
結語
MySQL 歷史是一部「開源逆襲商業、個人英雄主義讓位於生態共建」的演進史。從 4MHz/16KB 的 Unireg 到支撐 Google/Facebook/阿里/騰訊核心業務的 8.0,每個版本都在回應時代需求:事務、複制、分區、JSON、CTE、窗口函數、Clone、熱備份。分支版本 (MariaDB/Percona/Drizzle) 則在主幹之外探索更激進的優化與架構。對技術人員而言,**閱讀原始碼、參與社區、構建生產案例** 才是真正融入這段歷史的方式。