資料庫中事務的隔離級別有四種,級別由低到高分別為:read uncommitted、read committed、 repeatable read和serializable 四種。這四個級別可以逐個解決髒讀、不可重複讀、幻讀這幾個問題。
如果當前隔離級別為read uncommitted時,可能出現髒讀,即可能讀到還未提交的臨時寫資料。
如果當前隔離級別為read committed時,能夠避免髒讀,但可能造成不可重複讀,即兩個事務同時對同乙個資料進行修改時,發生的資料一致性和完整性的破壞。大部分的資料庫的預設級別都是read committed,如sql server和oracle。
如果當前隔離級別為repeatable read時,可以避免不可重複讀,即當前有兩個及以上數量的事務讀取同一資料時,資料庫選擇對第乙個訪問該資料的事務可讀可寫,對第二條及其後的事務為唯讀。儘管這樣可以避免不可重複讀,但是當事務a兩次讀取同乙個資料時,如果期間有其他對資料庫可讀可寫的事務對資料進行修改時,那麼事務a兩次讀取資料得到的結果極有可能是不一致的,即造成了幻讀。
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...