MySQL 定位與生態
- 瑞典 MySQL AB 開發,現屬 Oracle
- 跨平台、多線程、開源 (GPL)、低成本、高效能
- LAMP/LNMP 棲身:Linux + Apache/Nginx + MySQL + PHP/Python/Go
- 雖功能不及 Oracle/DB2,但中小型業務、Web 應用完全足夠
學習階段規劃
階段 0:基礎環境 (1-2 週)
- Linux 基礎操作、權限、服務管理
- Docker 快速拉起 MySQL 5.7/8.0 實例
- 熟悉
mysql、mysqldump、mysqladmin 客戶端工具
階段 1:SQL 核心 (3-4 週)
| 模組 | 重點 | 練習 |
| DDL | CREATE/ALTER/DROP、型別選型、索引、約束 | 設計電商訂單表結構 |
| DML | INSERT/UPDATE/DELETE/SELECT、JOIN、子查詢 | 多表關聯報表查詢 |
| DCL | GRANT/REVOKE、角色、權限最小化 | 建立唯讀、開發、DBA 三角色 |
| 進階 | 視圖、CTE、窗口函數、JSON、GIS | JSON 欄位索引與查詢 |
階段 2:管理與運維 (4-6 週)
- 安裝部署:二進制、包管理、Docker、編譯安裝
- 配置調優:
my.cnf 關鍵參數 (buffer pool、log、thread、tmp)
- 備份恢復:
mysqldump、xtrabackup、PITR、驗證演練
- Replication:主從、GTID、半同步、MHA/Orchestrator 故障切換
- 監控告警:Prometheus + Grafana + mysqld_exporter、慢查詢分析
階段 3:效能調優 (持續)
EXPLAIN 執行計畫、optimizer_trace
- 索引設計:B+Tree、覆蓋索引、最左前綴、下推
- 鎖機制:行鎖、間隙鎖、死鎖排查、
innodb_lock_wait_timeout
- Schema 演進:Online DDL、pt-online-schema-change、gh-ost
階段 4:架構與高可用 (進階)
- 讀寫分離中間件:ProxySQL、MaxScale、MyCat
- 分庫分表:ShardingSphere、Vitess、自研路由
- MySQL Cluster (NDB) / Galera Cluster / Group Replication
- 雲原生:RDS、PolarDB、TiDB、OceanBase 技術選型
認證體系與職業發展
- Oracle 官方:MySQL Database Administrator (OCP)、MySQL Developer
國內稀缺:全通過三門認證 (DBA、Developer、Cluster DBA) < 10 人
- 大廠需求:DBA、資料庫內核開發、雲資料庫研發、SRE
- 薪資彈性大:核心 DBA 年薪 40-100 萬+
學習資源推薦
- 官方文檔 (dev.mysql.com/doc) — 權威、最新、必讀
- 《High Performance MySQL》第 4 版 — 紅寶書
- 《MySQL 技術內幕:InnoDB 存儲引擎》 — 內核視角
- Percona Blog、MySQL Server Blog、Planet MySQL
- GitHub: awesome-mysql、mysql-sys、sysbench
避坑指南
- 只看書不動手 → 必須建立實驗環境、跑腳本、造故障
- 追新版不穩定 → 生產用 GA 版、長期支援版 (LTS)
- 忽略備份驗證 → 沒驗證的備份 = 沒備份
- 單機思維 → 早期引入 Replication、Proxy、監控
結語
MySQL 學習是馬拉松而非百米衝刺。按階段紮實推進、持續動手實驗、關注社區前沿、考取權威認證,才能在資料庫賽道跑出屬於自己的節奏。