首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 效能優化全景:從編譯參數、服務器變數、表類型選擇到內建優化工具

     編輯:MySQL 綜合教學

一、編譯期優化(源碼安裝專用)

1.1 使用 pgcc (Pentium GCC)

針對奔騰處理器優化,整體效能提升 ~10%。非奔騰平台無效。

1.2 僅編譯必要字元集

./configure --with-extra-charsets=none ...

預設安裝 24 種字元集,僅保留 latin1 可減少體積與初始化開銷。

1.3 靜態編譯 mysqld

./configure --with-mysqld-ldflags=-all-static --disable-shared ...

無共享庫依賴,執行效率更高。

1.4 綜合編譯參數範例

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% 效能。

二、服務器變數調校 (my.cnf)

配置檔作用域三層:/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)

四、內建優化工具指令

4.1 SHOW STATUS

mysql> SHOW STATUS;

顯示連線數、查詢數、緩存命中率、慢查詢數等關鍵指標,診斷系統瓶頸。

4.2 EXPLAIN

mysql> EXPLAIN SELECT * FROM t WHERE id=1;

分析執行計畫:索引使用、掃描行數、JOIN 類型、是否使用臨時表/檔案排序。

4.3 OPTIMIZE TABLE

mysql> OPTIMIZE TABLE tbl_name;

回收空間、合併碎片(大量 UPDATE/DELETE 後必做)。僅支援 MyISAM、BDB。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved