文章目錄
ACID
原子行(atomicity)
一個事務中的所有操作要麼全成功,要麼全部失敗回滾
一致性(consistency)
從一個一致性狀態轉到另一個一致性的狀態
在事務執行過程中出現系統崩潰等狀態,表中信息也不會有所改變,因爲沒有被提交
隔離性(isolation)
當一個事務所做的修改在最終提交以前,對其他事務是不可見的。
持久性(durability)
當事務一旦被提交,就會永久的保存在數據庫中
隔離級別
READ UNCOMMITTED(未提交讀/髒讀)
在該級別中,對事務中的內容進行修改,即使是沒有提交,對其他事務也都是可見的,這樣會出現髒讀的情況
READ COMMITTED(提交讀/不可重複讀)
一個事務開始時,只能“看見”已經提交的事務所做的修改
例如一個事務A開始讀某一個表是一條數據,另一個事務B對這個表增加一條數據,並且提交。這時事務A再查找會發現兩條數據。那麼第一個事務A兩次讀到的的數據可能是不一樣的,因此稱爲是不可重複讀
REPEATABLE READ(可重複讀)
該級別保證了在同一個事務中多次讀取同樣記錄的結果是一致的
SERIALIZABLE(可串行化)
最高級別,通過強制事務串行執行,避免了幻讀,會在讀取的每一行數據上都加鎖,所以可能導致大量的超時和鎖爭用問題
隔離級別 | 髒讀可能性 | 不可重複讀可能性 | 幻讀可能性 | 加鎖讀 |
---|---|---|---|---|
READ UNCOMMITTED | yes | yes | yes | no |
READ COMMITTED | no | yes | yes | no |
REPEATABLE READ | no | no | yes | no |
SERIALIZABLE | no | no | no | yes |