OPTIMIZE TABLE 整理碎片,提升掃描效率參數 concurrent_insert:
| 值 | 行為 |
|---|---|
| 0 | 停用並發插入 |
| 1 (預設) | 無空洞時允許尾部並發插入 |
| 2 | **無論是否有空洞,皆允許尾部並發插入** (推薦寫入密集場景) |
配合定期 OPTIMIZE TABLE 清理碎片,兼顧空間回收與並發效能。
low_priority_updates=1 或啟動參數 --low-priority-updates,降低寫優先級SET LOW_PRIORITY_UPDATES=1 或單句 INSERT LOW_PRIORITY ...max_write_lock_count=1,每處理一個寫鎖暫停讓讀鎖插隊key_buffer_size 適當調大,快取索引塊query_cache_size 快取重複查詢結果集 (適用靜態資料)PARTITION BY RANGE/HASH) 將大表拆分,減少單表掃描範圍SHOW STATUS LIKE 'Table_locks%';
-- Table_locks_immediate / Table_locks_waited > 5000 表鎖爭用嚴重,建議遷移 InnoDB
concurrent_insert=2、配置 low_priority_updates、上快取、規劃讀寫分離