首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 效能調優全攻略:從系統層到查詢層

     編輯:MySQL 資料庫相關知識

優化核心觀念

優化需對整個系統深度理解。局部優化可基於少量知識,但極致效能要求全系統掌握。本章說明 MySQL 優化各層面方法與範例。

四大常見瓶頸

  1. 磁碟尋道:現代磁碟平均尋道 <10ms,理論每秒 1000 次。改善緩慢,優化策略:將資料分散於多磁碟。
  2. 磁碟讀寫:傳輸率 10-20MB/s。較易優化,可多磁碟並行讀取。
  3. CPU 週期:資料讀入記憶體後的處理運算。小表常見限制,但小表速度通常非問題。
  4. 記憶體頻寬:CPU 需求超過快取時成為瓶頸,較罕見但需知悉。

系統/編譯/啟動參數調校

作業系統選擇

  • 多 CPU 環境:Solaris(執行緒表現佳)或 Linux 2.2+ 核心(良好 SMP 支援)。
  • 32 位元機器 Linux 預設 2GB 檔案大小限制,期待 XFS 等新檔案系統解決。
  • 建議:生產環境前務必測試目標平台。

其他系統建議

  • 記憶體充足時移除所有交換裝置(部分 OS 仍會使用 swap)。
  • 單機運行 MySQL 時用 --skip-locking 避免外部鎖定(不影響功能)。執行 myisamchk 前須停止服務或鎖定相關表。MIT-pthreads 編譯時預設開啟。多 MySQL 實例共享資料目錄時不可使用。

編譯與連結對速度的影響

  • static 靜態連結產生最快執行檔。
  • Unix Socket 連線優於 TCP/IP。
  • Linux 上 pgcc -O6 編譯最快,編譯 sql_yacc.cc 需 ~200MB 記憶體。配置時設 CXX=gcc 避免多餘 libstdc++。
  • 優質編譯器/選項可帶來 10-30% 效能提升,自行編譯 SQL Server 尤其重要。
  • Intel 平台建議 pgcc 或 Cygnus CodeFusion;Fujitsu 編譯器尚未穩定支援 MySQL 優化。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved