1. 精簡不需要的模組
./configure --help # 查看所有選項
./configure --without-server # 僅安裝客戶端
./configure --prefix=/usr/local/mysql \
--with-unix-socket-path=/tmp/mysql.sock \
--without-debug # 移除除錯符號
2. 僅編譯需要的字符集
./configure --with-charset=utf8 \
--with-collation=utf8_general_ci \
--with-extra-charsets=complex # 僅含無法動態載入的複雜字符集
# 或 all(全部內建)、空格分隔列表
3. 使用 pgcc 編譯(舊版 GCC 情況)
CFLAGS="-O3 -mpentiumpro -mstack-align-double" \
CXX=gcc \
CXXFLAGS="-O3 -mpentiumpro -mstack-align-double -felide-constructors -fno-exceptions -fno-rtti" \
./configure ...
- 針對 Pentium Pro/II/III 優化,現代 GCC (>=4.x) 已內建等效優化,通常改用
-O3 -march=native。
4. 靜態連結提升效能
./configure --with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static
- 消除動態載入開銷,二進制較大但啟動/執行更快。
- 注意:glibc 靜態連結可能導致 NSS/DNS 解析問題,需測試驗證。
MySQL 升級三法
| 方法 | 適用引擎 | 速度 | 步驟核心 |
| 1. mysqldump 導出/導入 | 所有 | 最慢 | 安裝新版 → dump 舊庫 → 導入新庫 → mysql_fix_privilege_tables → 重啟 |
| 2. mysqldump --tab + mysqlimport | 所有 | 較快 | 舊庫 --tab 導出 → 檔案傳輸 → 新庫建表 → mysqlimport 導入 → 升級權限表 → 重啟 |
| 3. 直接複製資料目錄 | MyISAM | 最快 | 安裝新版 → 複製 .frm/.MYD/.MYI → 升級權限表 → FLUSH TABLES/重啟 |
- 所有方法最後均需執行
mysql_fix_privilege_tables 升級權限表結構。