1.併發事務問題 1)臟讀:一個事物讀到另一個事務還沒有提交的數據。 2)不可重覆讀:一個事務先後讀取同一條記錄,但兩次讀取的數據不同,稱之為不可重覆讀。 3)幻讀:一個事務按照條件查詢數據時,沒有對應的數據行,但是在插入數據時,又發現這行數據已經存在,好像出現了“幻影”。 2.事務隔離級別 隔離級 ...
1.併發事務問題
1)臟讀:一個事物讀到另一個事務還沒有提交的數據。
2)不可重覆讀:一個事務先後讀取同一條記錄,但兩次讀取的數據不同,稱之為不可重覆讀。
3)幻讀:一個事務按照條件查詢數據時,沒有對應的數據行,但是在插入數據時,又發現這行數據已經存在,好像出現了“幻影”。
2.事務隔離級別
隔離級別 | 臟讀 | 不可重覆讀 | 幻讀 |
---|---|---|---|
Read uncommitted | ✔ | ✔ | ✔ |
Read committed | ❌ | ✔ | ✔ |
Repeatable Read(預設的) | ❌ | ❌ | ✔ |
Serializable | ❌ | ❌ | ❌ |
1). 查看事務隔離級別
SELECT @@TRANSACTION_ISOLATION;
2). 設置事務隔離級別
SET [ SESSION | GLOBAL ] TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED |
READ COMMITTED | REPEATABLE READ | SERIALIZABLE }
註意:
事務隔離級別越高,數據越安全,但是性能越低。