資料庫事務的隔離級別

2021-09-24 10:40:10 字數 648 閱讀 9621

事務隔離級別:

乙個事務對資料庫的修改與並行的另乙個事務的隔離程度。兩個併發事務同時訪問資料庫表相同的行時,可能會出現以下三個問題:

1.幻讀:

事務t1讀取一條指定where條件的語句,返回結果集。此時事務t2插入一行新紀錄,恰好滿足t1的where條件,然後t1使用相同的條件再次查詢,結果集總可以看到t2插入的記錄,這條新記錄則是幻讀記錄。

2.不可重複讀:

事務t1讀取一條記錄,緊接著事務t2修改了t1剛剛修改的記錄,然後t1再次查詢,發現與第一次讀取的記錄不同,這成為不可重複讀。

3.髒讀:

事務t1更新了一行記錄,還未提交所做的修改,這個時候t2讀取了更新後的資料,然後t1後續操作出現異常執行回滾操作,取消剛才的修改,所以t2讀取的資料無效,也就是髒資料。

為了處理這些問題,sql標註定義了以下幾種事務的隔離級別:

(1)read uncommited 幻讀、不可重複讀和髒讀都允許;

(2)read committed 允許幻讀、不可重複讀,不允許髒讀;

(3)repeatable read允許幻讀,不允許不可重複讀和髒讀;

(4)serializable幻讀、不可重複讀和髒讀都不允許。

資料庫事務隔離級別

資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted rea...

資料庫事務隔離級別

資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted rea...

資料庫事務隔離級別

資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable 這四個級別可以逐個解決髒讀 不可重複讀 幻讀 這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted re...