MySQL 效能優化四大面向:源碼編譯、服務器配置、表引擎選擇、內建分析工具。
./configure --with-extra-charsets=none 減少體積--with-mysqld-ldflags=-all-static 免共享庫開銷CFLAGS="-O6 -mpentiumpro -fomit-frame-pointer" \
CXX=gcc CXXFLAGS="-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared
my-small/medium/large/huge.cnf 依記憶體/負載選擇/etc/my.cnf (全域) → [安裝目錄]/var/my.cnf (實例) → ~/my.cnf (用戶)mysqld --help 搜尋 possible variables for option --set-variableset-variable = max_connections=100 放在 [mysqld] 區段| 類型 | 分類 | 特點 |
|---|---|---|
| BDB | 事務安全 | Berkeley DB,支援 COMMIT/ROLLBACK |
| HEAP (MEMORY) | 非事務 | 雜湊索引、記憶體儲存、最快、重啟資料消失 |
| ISAM | 非事務 | 舊版預設,已棄用 |
| MERGE | 非事務 | 多 MyISAM 表合併查詢,提速、省空間 |
| MyISAM | 非事務 | 預設,較 ISAM 小、跨平台二進位相容、鍵長更大 |
建表指定:CREATE TABLE t (...) ENGINE=HEAP。BDB 需額外配置。
MySQL 4.0 將新增 InnoBase、Gemeni 兩種事務引擎。
SHOW STATUS:服務器狀態變數 (連線數、異常中斷、最大並發等)EXPLAIN SELECT ...:分析查詢計劃、索引使用、JOIN 順序OPTIMIZE TABLE:回收空間、合併碎片 (大量 UPDATE/DELETE 後),僅支援 MyISAM/BDB