隔離級別旨在保證並發讀寫正確性。級別越高,數據一致性越強,但並發性能越低。大多數應用建議設置為 Read Committed,避免髒讀且性能較好;個別場景可用悲觀/樂觀鎖解決不可重複讀、幻讀。
| 級別 | 說明 | 髒讀 | 不可重複讀 | 幻讀 |
|---|---|---|---|---|
| READ UNCOMMITTED | 允許讀取未提交數據 | ✅ 會發生 | ✅ 會發生 | ✅ 會發生 |
| READ COMMITTED | 僅讀已提交數據 | ❌ 避免 | ✅ 會發生 | ✅ 會發生 |
| REPEATABLE READ | 事務內多次讀取同一值 | ❌ 避免 | ❌ 避免 | ✅ 會發生 |
| SERIALIZABLE | 完全串行化 | ❌ 避免 | ❌ 避免 | ❌ 避免 |
READ COMMITTED(預設)、SERIALIZABLE假設事務 T1、T2 並發執行: