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

MySQL 服務器參數優化實戰(一):核心三參數調優

     編輯:MySQL 資料庫相關知識

MySQL 安裝後默認配置難以支撐生產負載。本文聚焦三大核心參數:key_buffer_size、query_cache_size、table_cache,通過狀態值指導調優。

配置文件層級

  • my-small.cnf:< 64MB 內存
  • my-medium.cnf:64-128MB(最通用)
  • my-large.cnf:512MB+
  • my-huge.cnf:1-2GB+

拷貝至 /etc/my.cnf 修改,mysqladmin variables 查看生效值。

核心參數一:key_buffer_size(僅 MyISAM)

索引塊緩存大小,直接影響索引讀取速度。

  • 初始建議:16MB
  • 監控指標:Key_read_requests / Key_reads 比值 ≥ 1:100,理想 1:1000+

實例(運行 20 天):

key_buffer_size = 128M
Key_read_requests = 650,759,289
Key_reads = 79,112
比值 ≈ 1:8000  極其健康

估算法:所有表索引大小之和(示例約 125MB),隨數據增長調整。

核心參數二:query_cache_size

SELECT 結果緩存,命中時零解析零執行。

  • 關鍵狀態:Qcache_lowmem_prunes(緩存不足剔除次數)、Qcache_hits(命中數)、Qcache_free_blocks(碎片塊數)
  • Qcache_lowmem_prunes 大 → 增加緩存
  • Qcache_hits 小 → 查詢重複率低,考慮關閉緩存
  • Qcache_free_blocks 大 → 碎片多,需 FLUSH QUERY CACHE

實例配置:

query_cache_size = 32M
query_cache_type = 1
狀態:Qcache_hits=79M, Lowmem_prunes=617K, Free_blocks=5328
建議:內存允許下調大至 64M+

核心參數三:table_cache

表描述符緩存,減少打開/關閉表開銷。

  • 監控:Open_tables vs Opened_tables
  • Open_tables == table_cache 且 Opened_tables 持續增長 → 擴大
  • 1GB 內存建議 128-256

實例:table_cache=256,運行 20 天 Opened_tables=9046,增長極慢,無需調大。

下期預告

後續將講解 sort_buffer_size、read_buffer_size、thread_cache_size、innodb_buffer_pool_size 等進階參數調優。

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