key_buffer_size 僅對 MyISAM 生效(含內部臨時表),是 MyISAM 性能第一參數。
SHOW GLOBAL STATUS LIKE 'key_read%'; Key_reads / Key_read_requests < 0.1% 為佳
實例:Key_read_requests=2,454,354,135,490,Key_reads=23,490,命中率 99.999%。
SHOW GLOBAL STATUS LIKE 'key_blocks_u%'; Key_blocks_used / (Key_blocks_used + Key_blocks_unused) ≈ 80% 為宜
若 100% 用滿 → 增加緩存或檢查是否過度索引。
某 MyISAM 主庫,調整 key_buffer_size=2048M 後問題解決。
Opened_tables 大 → 調大 table_cacheKey_reads 大 → 調大 key_buffer_sizeHandler_read_rnd 大 → SQL 缺索引全表掃Threads_created 大 → 調大 thread_cache_sizeCreated_tmp_disk_tables 大 → 調大 tmp_table_sizekey_buffer_size=16M (8-64M) 足矣。