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

MySQL 優化全方位指南:編譯調優、服務器變數、表類型選擇與內建工具

     編輯:MySQL 資料庫相關知識

MySQL 效能優化四大面向:源碼編譯、服務器配置、表引擎選擇、內建分析工具。

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

  • pgcc (Pentium GCC):針對奔騰優化,整體提升 ~10%
  • 僅編譯需用字元集:./configure --with-extra-charsets=none 減少體積
  • 靜態編譯 mysqld:--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.cnf)

  • 範本:my-small/medium/large/huge.cnf 依記憶體/負載選擇
  • 三種作用域:
    /etc/my.cnf (全域) → [安裝目錄]/var/my.cnf (實例) → ~/my.cnf (用戶)
  • 查看所有可調變數:mysqld --help 搜尋 possible variables for option --set-variable
  • 設定範例:set-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
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved