1、事務特性ACID
- 原子性:事務是不可分割的最小操作單元,要么全部成功,要么全部失敗。
- 一致性:事務完成時,必須使所有數據都保持一致狀態。
- 隔離性:數據庫系統提供的隔離機制,保證事務在不外部并發操作影響的獨立環境下運行。
- 持久性:事務一旦提交或者回滾,它對數據庫中的數據的改變就是永久的。
2、并發事務問題
- 臟讀:一個事務讀到了另一個事務還沒提交的數據。
- 不可重復讀:一個事務先后讀取同一條記錄,但兩次讀取的數據不同。
- 幻讀:一個事務根據條件查詢數據時,沒有找到對應的數據行,但在插入數據時,又發現這行數據已經存在,好像出現了“幻影”。
3、事務的隔離級別
- 讀未提交 Read Uncommitted
- 讀已提交 Read Committed
- 可重復讀 Repeatable Read
- 可串行化 Seralzable?
?事務的隔離級別越高,數據越安全,但性能越低。
臟讀 | 不可重復讀 | 幻讀 | |
---|---|---|---|
讀未提交 | 允許 | 允許 | 允許 |
讀已提交 | 禁止 | 允許 | 允許 |
可重復讀(默認) | 禁止 | 禁止 | 允許 |
可串行化 | 禁止 | 禁止 | 禁止 |
?