| 已持有鎖 \ 請求鎖 | READ LOCK | WRITE LOCK |
|---|---|---|
| READ LOCK | 相容 | 阻塞 |
| WRITE LOCK | 阻塞 | 阻塞 |
| 修飾符 | 適用語句 | 效果 | 支援版本 |
|---|---|---|---|
LOW_PRIORITY | DELETE, INSERT, LOAD DATA, REPLACE, UPDATE | 寫入降級:等待**所有當前及後續讀取**完成才執行,可能導致寫入飢餓 | 3.22.5+ |
HIGH_PRIORITY | SELECT | 讀取升級:插隊至等待中的一般寫入之前執行 | 3.23.0+ |
DELAYED | INSERT, REPLACE | 資料放入隊列立即返回,背景執行緒在無讀取時批次寫入;讀取到來時暫停寫入 | 3.22.15+ (MyISAM/ISAM) |
INSERT DELAYED,Server 將行放入每表專屬隊列,立即回傳 OK (不含 AUTO_INCREMENT 值、不檢查唯一鍵衝突)。kill -9 強制終止 Server 會導致隊列資料遺失;正常 TERM 會先寫入隊列資料再退出。| 功能 | MySQL 3.22 | MySQL 3.23 | MySQL 4.0+ |
|---|---|---|---|
| LOW_PRIORITY 寫入 | 3.22.5+ | ✓ | ✓ |
| HIGH_PRIORITY SELECT | ✗ | 3.23.0+ | ✓ |
| INSERT DELAYED | 3.22.15+ | ✓ | ✓ (除 InnoDB 外) |
| 行級鎖 (InnoDB) | ✗ | ✗ | ✓ |
LOW_PRIORITY 減少對線上查詢影響。HIGH_PRIORITY 確保低延遲。INSERT DELAYED (僅 MyISAM/MEMORY/CSV 引擎)。ALTER TABLE、全表掃描 SELECT),必要時用 pt-online-schema-change 線上變更結構。