MySQL 簡介
MySQL 是全球最流行的開源關系型數據庫管理系統(RDBMS),最初由瑞典 MySQL AB 開發,現隸屬 Oracle。憑藉體積小、速度快、總體擁有成本低、開源社區活躍等優勢,成為中小型 Web 應用首選數據庫,典型組合為 LAMP/LEMP 棧(Linux + Apache/Nginx + MySQL + PHP/Python/Perl)。
核心架構特點
插件式存儲引擎架構
MySQL 獨創的 存儲引擎插件接口 將查詢處理器與數據存儲分離,支持多種引擎並存:
| 引擎 | 特點 | 適用場景 |
| InnoDB | 事務支持、行鎖、MVCC、外鍵、崩潰恢復、聚簇索引 | 核心業務、高併發、數據一致性要求高(默認引擎) |
| MyISAM | 全文索引(舊版)、表鎖、壓縮表、讀多寫少 | 只讀報表、日志歸檔、全文搜索(5.6 前) |
| Memory (HEAP) | 數據在內存、哈希索引、重啟丟失 | 臨時表、查詢緩存、查找表 |
| Archive | 高壓縮、僅支持 INSERT/SELECT | 海量日志歸檔 |
| CSV | 文本 CSV 格式存儲 | 數據交換、外部工具處理 |
| Blackhole | 寫入即丟棄、用於複製鏈路中繼 | 多級複製中繼、審計日志分流 |
連接層與線程模型
- 一線程一連接:每個客戶端連接對應一個線程(線程池插件可複用)。
- 連接建立時進行認證、權限校驗、字符集協商。
SQL 層(Server Layer)
- 連接管理、查詢緩存(8.0 移除)、解析器、優化器、執行器。
- 優化器:基於成本模型,支持索引合併、MRR、ICP、派生表合併、語義化轉換等高級優化。
存儲引擎層
- 負責數據存取、索引維護、鎖管理、事務實現(InnoDB)、崩潰恢復。
- 通過統一 Handler API 與 SQL 層交互。
核心優勢
- 開源免費(GPL):社區版零授權成本,商業版提供企業級支持。
- 跨平台:Linux、Windows、macOS、FreeBSD、Solaris 全支持。
- 高性能:InnoDB 自適應哈希索引、Change Buffer、雙寫緩衝、並行刷盤,單機輕松支撐萬級 QPS。
- 高可用生態:主從複製、GTID、半同步、Group Replication、InnoDB Cluster、Orchestrator、MHA、ProxySQL 成熟方案豐富。
- 生態豐富:連接器、ORM、遷移工具、監控、備份、分庫分表中間件(ShardingSphere、Vitess)完善。
- 雲原生友好:AWS RDS/Aurora、阿里云 PolarDB、騰訊云 TDSQL、Google Cloud SQL 等托管服務成熟。
版本選擇建議
- MySQL 8.0 LTS:當前主流,CTE、窗口函數、JSON 增強、角色權限、直方圖統計、資源組、隱式索引、克隆插件等企業級特性。
- MySQL 5.7:延長支持至 2023/2024,存量系統維護,新項目不推薦。
- MariaDB / Percona Server:兼容 MySQL 協議,提供列存、線程池、審計、加密等增強特性,適合特定場景替代。
典型部署拓撲
- 單機:開發/測試/小型應用。
- 主從複製:讀寫分離、備份卸載。
- 雙主/多主 (GTID):雙活寫入、跨機房容災。
- Group Replication / InnoDB Cluster:單主/多主自動故障轉移、強一致性(基於 Paxos)。
- 分庫分表:ShardingSphere、Vitess、TDDL 支持水平擴展。
MySQL 以「簡單、可靠、高性能」贏得了全球開發者信賴。理解其插件式架構、InnoDB 事務模型、複製原理,是駕馭 MySQL 從單機到分布式集群的關鍵鑰匙。