my.cnf:concurrent_insert = 2,重啟 MySQL 生效。| 值 | 行為 | 適用場景 |
|---|---|---|
| 0 | 完全禁用並發插入 | 極少並發寫入、需嚴格序列化 |
| 1(預設) | 僅當資料檔中間無空洞(無刪除/更新導致碎片)時,允許尾部並發插入 | 僅追加寫入的日誌表 |
| 2 | 無視中間空洞,始終允許尾部並發插入 | 高並發寫入、允許刪除/更新的表 |
INSERT DELAYED INTO tbl_name ...;
客戶端立即返回,Server 排隊寫入,進一步降低寫入阻塞。
SHOW VARIABLES LIKE 'concurrent_insert';
-- 應顯示 2
並發測試:多線程同時 INSERT,觀察 SHOW PROCESSLIST 無「Locked」狀態即生效。