資料庫的資料隔離級別

2021-08-08 22:37:12 字數 692 閱讀 9410

髒讀:乙個事務讀到另乙個事務未提交的更新資料(a和b事務併發執行,b事務執行更新後,a事務查詢b事務沒有提交的資料,b事務回滾,則a事務得到的資料不是資料庫中的真實資料。也就是髒資料,即和資料庫中不一致的資料)。

不可重複讀:乙個事務讀到另乙個事務已提交的更新資料(a和b事務併發執行,a事務查詢資料,然後b事務更新該資料,a再次查詢該資料時,發現該資料變化了)。

虛讀(幻讀):乙個事務讀到另乙個事務已提交的新插入的資料(a和b事務併發執行,a事務查詢資料,b事務插入或者刪除資料,a事務再次查詢發現結果集中有以前沒有的資料或者以前有的資料消失了)。

資料庫系統提供了四種事務隔離級別供使用者選擇:

a.serializable(序列化):乙個事務在執行過程中完全看不到其他事務對資料庫所做的更新(事務執行的時候不允許別的事務併發執行。事務序列化執行,事務只能乙個接著乙個地執行,而不能併發執行。)。

b.repeatable read(可重複讀):乙個事務在執行過程中可以看到其他事務已經提交的新插入的記錄,但是不能看到其他其他事務對已有記錄的更新。

c.read commited(讀已提交資料):乙個事務在執行過程中可以看到其他事務已經提交的新插入的記錄,而且能看到其他事務已經提交的對已有記錄的更新。

d.read uncommitted(讀未提交資料):乙個事務在執行過程中可以看到其他事務沒有提交的新插入的記錄,而且能看到其他事務沒有提交的對已有記錄的更新。

資料庫隔離級別

read uncommited 讀未提交 最低級別,可讀取未提交事物的資料,這會導致髒讀,比如 某時刻會話a修改了乙個資料,但還未提交,此時會話b,讀取了該資料,這是,會話a回滾了事物,這就導致資料出現了不一致狀態,這就是髒讀 read commited 提交讀 避免了髒讀,但會導致不可重複讀,例如...

資料庫隔離級別

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

資料庫隔離級別

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