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

MySQL入門系列:MySQL 伺服器效能調校參數詳解

     編輯:MySQL 資料庫相關知識

伺服器參數調整概述

MySQL 伺服器擁有多個影響運作行為的參數(變數)。預設值若不合適,可依執行環境調整。例如:大量記憶體可分配較大緩衝區給磁碟與索引操作,減少磁碟 I/O;資源有限的系統則應縮減緩衝區,避免排擠其他程序。

查看與設定參數

  • 檢視目前值: 執行 mysqladmin variables。
  • 命令列啟動時設定: 使用 --set-variable var_name=value 或簡寫 -O var_name=value。多個參數可重複使用該選項。
  • 選項檔設定: 在 [mysqld] 群組中以 set-variable=var_name=value 語法指定。

完整參數清單請參考附錄 E;常用效能相關參數如下:

關鍵效能參數說明

back_log
等待處理的連線請求佇列長度。高流量站點可適度調大。
delayed_queue_size
控制 INSERT DELAYED 陳述式的排隊列大小。佇列滿時新請求會阻塞,若有大量此類插入且發生阻塞,可調大此值。(INSERT DELAYED 詳見 4.5 節)
flush_time
若系統常死機或重啟,可設為非零值,讓伺服器每隔指定秒數刷新表快取。雖降低效能,但能減少資料損失風險。Windows 下亦可用 --flush 啟動參數達到同樣效果。
key_buffer_size (key_buffer)
索引區塊緩衝區大小。調大可加速索引建立/修改,增加記憶體命中率,減少磁碟存取。MySQL 3.23 前名為 key_buffer,新版雙名皆支援。
max_allowed_packet
客戶端通訊緩衝區上限。需傳輸大型 BLOB/TEXT 時應調大。預設 24MB,舊版客戶端可能需手動指定較大值(如 mysql --set-variable max_allowed_packet=24M)。
max_connections
允許的最大同時連線數。Web 高流量場景若設太低會導致連線被拒,需視負載調整。
table_cache
表快取大小。調大可減少檔案開關次數。但若同時調大 max_connections 與 table_cache,會消耗大量檔案描述符,可能觸及作業系統限制,需調整 ulimit 或核心參數。替代方案:拆分資料目錄並運行多個伺服器,但會增加跨伺服器存取與權限同步的複雜度。
record_buffer、sort_buffer
連線專用緩衝區(每連線各一組),用於排序與連接操作。調大雖可能提升單查詢速度,但會大量消耗系統資源,建議漸進式微調並觀察效能變化。

更多優化討論請參閱 MySQL 參考手冊「從 MySQL 中獲得最高性能」一章。

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