事物隔離級別

2021-09-26 21:23:27 字數 903 閱讀 3371

資料庫事務的隔離級別有4種,由低到高分別為read uncommitted 、read committed 、repeatable read 、serializable 。而且,在事務的併發操作中可能會出現髒讀,不可重複讀,幻讀。

read uncommitted

讀未提交,顧名思義,就是乙個事務可以讀取另乙個未提交事務的資料;會產生髒讀。

read committed

讀提交,顧名思義,就是乙個事務要等另乙個事務提交後才能讀取資料;若有事務對資料進行更新(update)操作時,讀操作事務要等待這個更新操作事務提交後才能讀取資料,可以解決髒讀問題;會產生不可重複讀   [可以避免髒讀]

乙個事務範圍內兩個相同的查詢卻返回了不同資料,這就是不可重複讀;不可重複讀對應的是修改,即update操作

repeatable read

重複讀,就是在開始讀取資料(事務開啟)時,不再允許修改操作;會產生幻讀      [可以避免髒讀、不可重複讀]

幻讀問題對應的是插入insert操作

serializable 序列化

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

注:大多數資料庫預設的事務隔離級別是read committed,比如sql server , oracle。mysql的預設隔離級別是repeatable read

事物隔離級別

自然也是支援四種事務隔離級別的 read uncommitted,read commit,repeatable read serializable,下面就分別最四種隔離級別在實現的鎖機制做乙個簡介 serializable 1 這種隔離級別對資料的要求最為嚴格,自然也是效能最差的一種隔離級別。在所有...

事物隔離級別

隔離級別從松到緊 讀未提交,讀提交 重複讀,序列化。讀未提交 可能會出現髒讀的情況 例子 你去買5個包子。人多。店員拿的急多方乙個,袋子裡有6個,這個時候,你眼睛一瞟。心裡美滋滋。付錢的時候老闆檢查了一下,發現多了乙個,就拿走了乙個,然後你付錢走人 提交事務 這時候你就發現實際上袋子裡只有5個,但是...

事物隔離級別

在分布式的系統中,通常會有多個執行緒連線到資料庫中同時對乙個表進行操作 這裡的同時並不表示同乙個時間點,而是同時競爭cpu的資源,至於如何排程,就要看執行緒和作業系統如何進行排程了 這種情況下如果會話的事物設定不當,就會導致資料混亂,常常會出現以下三種情況 假設現在系統中有兩個會話a和b,同時對錶t...