資料庫事務併發問題----各種事務隔離下的情況

這次又寫信給哪位發表於2020-12-15

目錄

一、讀未提交下的髒讀

二、讀已提交下的不可重複讀

三、可重複讀的避免了不可重複讀等所有問題

四、併發修改同一個資料下的排隊

 

 


一、讀未提交下的髒讀

  • 設定當前會話的隔離級別:

  

 set session transaction isolation level read uncommitted;

  

出現髒讀問題,讀到了髒資料。

 


二、讀已提交下的不可重複讀

 set session transaction isolation level read committed;

讀已提交下,沒有髒讀問題了,但是,同一事務期間並沒有保證前後讀取的資料是一致的,出現了不可重複讀問題。

 


三、可重複讀的避免了不可重複讀等所有問題

可重複讀的情況下,只要在同一件事務期間,第一次讀取是什麼樣子,以後就是什麼,即使外界的資料都沒了,也還能讀到(快照讀

 


四、併發修改同一個資料下的排隊

等多事務同時修改資料

事務A先修改資料,但未提交,這時,事務B再次修改同一條資料,他並不會立刻執行,而是阻塞住,等待事務A提交後,才會執行。

 


 

 

 

 

 

 

 

相關文章