事務四種隔離級別

2021-10-05 04:52:26 字數 763 閱讀 4139

1.讀取未提交:乙個事務可以讀取另乙個未提交的事務的資料。——髒讀

2.讀取已提交:事務a多次讀取同一資料,事務b在事務a多次讀取的過程中,對資料做了更新並提交,導致事務a多次讀取同一資料時,結果不一致。——不可重複度(對應update操作);

3.可重複讀:開始讀取資料時(事務開啟時),不在允許修改操作。(可能會插入或刪除資料)

示例:系統管理員a將資料庫中所有學生成績從具體分數改為abcde,但是系統管理員b就在這時,插入了一條具體分數的記錄,當a改結束後,發現還有一條資料沒有改過來,就像發生了幻覺一樣。——幻讀

4.可序列讀:serializable是最高事務隔離級別,在該級別下,事務序列化順序執行,可以避免髒讀、不可重複讀和幻讀,但這種事務隔離級別效率低下,比較耗資料庫記憶體,一般不使用。

※這裡注意,不可重複讀和幻讀很容易混淆,不可重複讀側重於修改,幻讀側重於新增或刪除,解決不可重複讀只需要鎖住滿足條件的行,解決幻讀需要鎖表。

事務隔離級別 髒讀

不可重複讀

幻讀讀取未提交(read-uncommited)是是

是讀取已提交(read-committed)否是

是可重複讀(repeatable-read)否否

是可序列讀(serializable)否否

否5.oracle、sql server預設是讀取已提交

mysql預設是可重複讀

四種事務的隔離級別

sql 標準定義的四個隔離級別為 read uncommitted 未提交讀 read committed 提交讀 repeatable read 可重複讀 serializable 可序列化 下面分別介紹。1 未提交讀 就是乙個事務可以讀取另乙個未提交事務的資料。1 開啟乙個客戶端a,並設定當前事...

事務的四種隔離級別

資料庫事務的隔離級別有4種,由低到高分別為read uncommitted read committed repeatable read serializable 在事務的併發操作中可能會出現髒讀,不可重複讀,幻讀。具體可參照該篇部落格 read uncommitted 讀未提交,即乙個事務可以讀取...

事務的四種隔離級別

事務的四種隔離級別 1.read uncommitted 讀未提交,存在髒讀,不可重複讀,幻讀問題 2.read committed 讀已提交,解決了髒讀,存在不可重複讀,幻讀問題 3.repeatable read 可重複讀,解決了髒讀,不可重複讀,存在幻讀問題,是mysql預設隔離級別,使用mm...