[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 不宜過大(幾百即可),否則增加伺服器負擔;連接超時參數需依實際調整。
[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 則新連接被拒。
[mysqld] set-variable = max_connections=32000 -- 實際上限 16384 # 其他參數依業務自行調整
注意:my.ini 格式與 my.cnf 略異,調整時留意語法。
MySQL 優化無銀彈,必須依硬體、負載、業務模式靈活調整,切勿生搬硬套。