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

MySQL 效能優化四大面向:編譯調校、參數配置、表類型選擇與內建工具

     編輯:MySQL 資料庫相關知識

一、編譯階段優化

從原始碼安裝時,編譯選項對效能影響可達 10-30%。

1.1 使用 Pentium GCC (pgcc) 編譯器

針對 Pentium 處理器優化,整體效能提升約 10%。非 Pentium 平台勿用。

1.2 僅編譯所需字元集

./configure --with-extra-charsets=none [其他選項]

預設安裝 24 種字元集,僅保留 latin1 可減少記憶體佔用。

1.3 靜態編譯 mysqld

./configure --with-mysqld-ldflags=-all-static [其他選項]

避免共享函式庫呼叫開銷,提升執行速度。

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

二、伺服器參數調校

透過 my.cnf 設定檔調整運行參數,三種作用範圍:

  • 全域:/etc/my.cnf
  • 實例:[mysql-install-dir]/var/my.cnf
  • 用戶:~/my.cnf

預設配置範本

  • my-small.cnf:少量記憶體、輕度使用
  • my-medium.cnf:中等系統
  • my-large.cnf:大量記憶體、高負載
  • my-huge.cnf:2GB+ 記憶體、電商級應用

關鍵參數設定範例

[mysqld]
set-variable = max_connections=100
set-variable = key_buffer_size=128M
set-variable = table_cache=256
set-variable = sort_buffer_size=4M
set-variable = query_cache_size=32M

查看所有可調參數:mysqld --help

三、表類型選擇策略

類型分類特性適用場景
BDB交易安全支援 COMMIT/ROLLBACK,由 Sleepycat 開發需交易處理的應用
HEAP非交易記憶體哈希索引,極速,重啟資料遺失暫存表、快取表
ISAM非交易舊版預設,已淘汰不建議使用
MERGE非交易多個 MyISAM 表邏輯合併大型日誌分表查詢
MyISAM非交易預設類型,體積小、跨平台、大鍵值支援一般唯讀/多讀少寫應用

指定表類型

CREATE TABLE email_addresses (
    email CHAR(55) NOT NULL,
    name CHAR(30) NOT NULL,
    PRIMARY KEY (email)
) TYPE=HEAP;

四、內建優化工具

SHOW STATUS

SHOW STATUS;

顯示連線數、查詢數、暫存表建立數等關鍵指標,定位瓶頸。

EXPLAIN

EXPLAIN SELECT * FROM orders WHERE customer_id = 'VINET';

分析查詢執行計畫,判斷索引使用情況、連接類型、掃描行數。

OPTIMIZE TABLE

OPTIMIZE TABLE pet;

回收碎片空間、重排資料,適用於大量 UPDATE/DELETE 後的 MyISAM/BDB 表。

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