InnoDB 通過索引實現行級鎖,支援共享鎖(S)、排他鎖(X)、意向鎖(IS/IX)、記錄鎖、間隙鎖、Next-Key 鎖。本文從鎖類型、兼容矩陣、鎖算法、自增鎖、外鍵鎖、鎖監控、阻塞/死鎖處理七大維度深度解析,附帶 information_schema 三張鎖表實戰查詢與 innodb_autoinc_lock_mode 參數調優建議。
| 鎖類型 | 語句示例 | 兼容性 |
|---|---|---|
| 共享鎖 (S) | SELECT ... LOCK IN SHARE MODE | S✅ S✅ X❌ |
| 排他鎖 (X) | SELECT ... FOR UPDATE / UPDATE/DELETE | S❌ X❌ |
| 意向共享鎖 (IS) | 表級,加行 S 鎖前自動獲取 | IS✅ IX✅ S✅ X❌ |
| 意向排他鎖 (IX) | 表級,加行 X 鎖前自動獲取 | IS✅ IX✅ S❌ X❌ |
(A, B),防止幻讀Record Lock + Gap Lock,鎖定 (A, B],RR 隔離級別默認關鍵規則:
Record LockNext-Key Lock