- 髒讀:(一個事務讀取了未提交的事務)指當一個事務正在訪問數據,而且對數據進行了修改,而這種修改尚未提交到數據庫中,這時,另一個事務也訪問這個數據,而後使用了這個數據。
- 不可重複讀:(同一個事務中屢次讀取同一個數據返回的結果不一樣 )指在一個事務內,屢次讀同一數據。在這個事務尚未結束時,另一個事務也訪問該同一數據。那麼,在第一個事務中的兩次讀數據之間,因爲第二個事務的修改,那麼第一個事務兩次讀到的的數據多是不同的。
- 幻覺讀:(一個事務讀取到了另外一個事務已提交的insert數據)指當事務不是獨立執行時發生的一種現象,例如第一個事務對一個表中的數據進行了修改,這種修改涉及到表中的所有數據行。同時,第二個事務也修改這個表中的數據,這種修改是向表中插入一行新數據。那麼,之後就會發生操做第一個事務的用戶發現表中還有沒有修改的數據行,就好象發生了幻覺同樣。
ISOLATION_DEFAULT:使用數據庫默認的隔離級別mysql
事務隔離級別:
加鎖讀 serializable, mysql默承認重複讀
ISOLATION_DEFAULT:使用數據庫默認的隔離級別
事務併發處理:
- 共享鎖:共享鎖用於讀取數據操做,它容許其餘事務同時讀取某鎖定的資源,但不容許其餘事務更新它。
- 排他鎖:排它鎖用於修改數據的場合。它鎖定的資源,其餘事務不能讀取也不能修改。
- 更新鎖:更新鎖在更新操做的初始化階段用來鎖定可能要被修改的資源,從而避免使用共享鎖形成的死鎖現象。