資料庫事務的隔離等級簡單總結,資料庫事務層級

來源:互聯網
上載者:User

資料庫事務的隔離等級簡單總結,資料庫事務層級

資料庫中事務的隔離等級有四種,層級由低到高分別為:Read uncommitted、Read committed、 Repeatable read和Serializable 四種。這四個層級可以逐個解決髒讀、不可重複讀取、幻讀這幾個問題。

如果當前隔離等級為Read uncommitted時,可能出現髒讀,即可能讀到還未提交的臨時寫資料。

如果當前隔離等級為Read committed時,能夠避免髒讀,但可能造成不可重複讀取,即兩個事務同時對同一個資料進行修改時,發生的資料一致性和完整性的破壞。大部分的資料庫的預設層級都是Read committed,如SQL Server和Oracle。

如果當前隔離等級為Repeatable read時,可以避免不可重複讀取,即當前有兩個及以上數量的事務讀取同一資料時,資料庫選擇對第一個訪問該資料的事務可讀可寫,對第二條及其後的事務為唯讀。儘管這樣可以避免不可重複讀取,但是當事務A兩次讀取同一個資料時,如果期間有其他對資料庫可讀可寫的事務對資料進行修改時,那麼事務A兩次讀取資料得到的結果極有可能是不一致的,即造成了幻讀。

Serializable序列化時資料庫中最進階別的交易隔離等級,在該層級下,事務按照順序執行,這樣能夠避免髒讀、不可重複讀取和幻讀,但所造成的花銷大、效能低下。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.