數(shù)據(jù)庫的事務(wù)隔離級別有哪些?各有哪些優(yōu)缺點(diǎn)?

  • 事務(wù)隔離級別主要有四種

    • 讀未提交 (READ UNCOMMITED)

      • 定義:一個(gè)事務(wù)可以讀取另一個(gè)事務(wù)已修改但未提交的數(shù)據(jù)

      • 存在的問題

        • 臟讀

        • 不可重復(fù)讀

        • 幻讀

    • 讀已提交 (READ COMMITED)

      • 定義:一個(gè)事務(wù)只能讀取另一個(gè)事務(wù)已經(jīng)提交的數(shù)據(jù)

      • 存在的問題

        • 不可重復(fù)讀

        • 幻讀

    • 可重復(fù)讀 (REPEATABLE READ)(Mysql 默認(rèn)隔離級別)

      • 定義:在一個(gè)事務(wù)中多次讀取同一條記錄,結(jié)果一致,無論其他事務(wù)是否對這條記錄做了修改

      • 存在的問題

        • 幻讀
    • 串行 (SERIALIZABLE)

      • 定義:所有事務(wù)順序執(zhí)行

      • 不存在臟讀、不可重復(fù)讀、幻讀等問題

  • 釋義

    • 臟讀

      • 定義: 一個(gè)事務(wù)讀到另一個(gè)事務(wù)已修改未提交的數(shù)據(jù),如果前一個(gè)事務(wù)回滾,這個(gè)數(shù)據(jù)是錯誤的?;蛘咴谇耙粋€(gè)事務(wù)修改之前讀到了數(shù)據(jù)
    • 不可重復(fù)讀

      • 定義:一個(gè)事務(wù)修改某一條數(shù)據(jù),另一個(gè)事務(wù)在前一個(gè)事務(wù)提交之前讀到的是修改前的數(shù)據(jù),等前一個(gè)事務(wù)提交之后,讀到的又是修改后的數(shù)據(jù),造成兩次讀取同一條數(shù)據(jù)不一致
    • 幻讀

      • 定義:某個(gè)表初始有三條數(shù)據(jù),在一個(gè)事務(wù)中插入一條數(shù)據(jù),另一個(gè)事務(wù)讀到的也是三條數(shù)據(jù),但是在前一個(gè)事務(wù)提交后,讀到的應(yīng)是4條。
  • 優(yōu)缺點(diǎn)

    隔離級別從上到下,并發(fā)性能越來越差,但對于數(shù)據(jù)的隔離性一致性保證程度越好

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容