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

MySQL my.ini 參數優化三大經典模板解析

     編輯:MySQL 資料庫相關知識

模板一:通用基礎配置(Windows 環境)

[mysqld]
basedir=D:/MySQL
datadir=D:/MySQL/data
max_connections=1500
skip-locking
key_buffer=384M
max_allowed_packet=1M
table_cache=512
sort_buffer=2M
record_buffer=2M
thread_cache=8
thread_concurrency=8
myisam_sort_buffer_size=64M
server-id=1

[isamchk]
key_buffer=128M
sort_buffer=128M
read_buffer=2M
write_buffer=2M

[myisamchk]
key_buffer=128M
sort_buffer=128M
read_buffer=2M
write_buffer=2M

點評:整體夠用,但 max_connections 不宜過大(幾百即可),否則增加伺服器負擔;連接超時參數需依實際調整。

模板二:2GB 記憶體專用高性能配置

[mysqld]
skip-innodb
skip-bdb
skip-name-resolve
skip-locking
# log-bin 註釋掉關閉二進制日誌

key_buffer=512M
max_allowed_packet=4M
table_cache=1024
thread_cache=64
join_buffer_size=32M
sort_buffer=32M
record_buffer=32M
max_connections=512
wait_timeout=120
interactive_timeout=120
max_connect_errors=30000
long_query_time=1
max_heap_table_size=256M
tmp_table_size=128M
thread_concurrency=8
myisam_sort_buffer_size=128M

調優觀察指標(SHOW STATUS):

  • Created_tmp_disk_tables、Created_tmp_tables、Created_tmp_files、Slow_queries —— 越接近 0 越好。

關於 wait_timeout:建議 5–20 秒,視訪問量而定;過大導致空閒連接佔用記憶體。論壇 1.5 萬在線設 3 秒配合 pconnect 效果佳。

模板三:連接數過多錯誤的分析與對策

核心指標

  • max_connections:允許最大連接數(預設 100,上限 16384)。
  • threads_connected:當前活躍連接數(動態)。

判斷邏輯

mysql> SHOW VARIABLES LIKE 'max_connections';
mysql> SHOW STATUS LIKE 'threads_connected';

若 threads_connected == max_connections 則新連接被拒。

常見原因

  1. 配置過小(預設 100)
  2. 程式未釋放連接(連接池洩漏)
  3. 連接池上限設定不當

建議配置

[mysqld]
set-variable = max_connections=32000  -- 實際上限 16384
# 其他參數依業務自行調整

注意:my.ini 格式與 my.cnf 略異,調整時留意語法。

總結

MySQL 優化無銀彈,必須依硬體、負載、業務模式靈活調整,切勿生搬硬套。

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