針對奔騰處理器優化,整體效能提升 ~10%。非奔騰平台無效。
./configure --with-extra-charsets=none ...
預設安裝 24 種字元集,僅保留 latin1 可減少體積與初始化開銷。
./configure --with-mysqld-ldflags=-all-static --disable-shared ...
無共享庫依賴,執行效率更高。
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
官方文檔稱可提升 10-30% 效能。
配置檔作用域三層:/etc/my.cnf (全域)、[mysql-dir]/var/my.cnf (實例)、~/my.cnf (用戶)。
查看所有可調變數:
/usr/local/mysql/libexec/mysqld --help | grep -A 100 'possible variables'
設定範例:
[mysqld]
set-variable = max_connections=100
| 類型 | 分類 | 特點 | 適用場景 |
|---|---|---|---|
| BDB | 事務安全 | Sleepycat 開發,支援 COMMIT/ROLLBACK | 需事務的業務 |
| HEAP | 非事務 | 記憶體雜湊索引,極快,重啟資料消失 | 暫存表、快取表 |
| ISAM | 非事務 | 舊版預設,已被 MyISAM 取代 | 不建議使用 |
| MERGE | 非事務 | 多個同結構 MyISAM 表合併查詢 | 大表分片、日誌表 |
| MyISAM | 非事務 | 預設類型,檔案小、跨平台二進位相容、索引上限大 | 唯讀/多讀少寫、全文搜尋 |
建表指定:CREATE TABLE t (...) TYPE=HEAP; (5.1+ 用 ENGINE=HEAP)
mysql> SHOW STATUS;
顯示連線數、查詢數、緩存命中率、慢查詢數等關鍵指標,診斷系統瓶頸。
mysql> EXPLAIN SELECT * FROM t WHERE id=1;
分析執行計畫:索引使用、掃描行數、JOIN 類型、是否使用臨時表/檔案排序。
mysql> OPTIMIZE TABLE tbl_name;
回收空間、合併碎片(大量 UPDATE/DELETE 後必做)。僅支援 MyISAM、BDB。