MySQL與Oracle的隔離級別


一、事務和隔離級別
  事務的概念:事務是把對數據庫的一系列操作都看做一個整體,要么全部成功,要么全部失敗,利用事務我們可以保證數據庫的完整性,事務具有原子性。
  隔離級別:隔離級別定義了事務與事務之間的隔離距離。

  

  臟讀(dirty read):當一個事務讀取另一個事務未提交的修改時,產生臟讀。
  不可重復讀(nonrepeated read):同一查詢在同一事務中多次進行,由於其他事務提交所做的修改,導致每次返回的結果不同,此時發生不可重復讀。
  幻讀(phantom read):同一查詢在同一事務中多次進行,由於其他事務提交所做的新增刪除操作,導致每次得到的不同的結果集,此時發生幻讀。

  不可重復讀側重於修改,幻讀側重於新增或者刪除。解決不可重復讀只需要鎖住滿足條件的行,解決幻讀需要鎖表。

二、Oracle的事務隔離級別有兩種

  • READ COMMITTED :讀已提交
  • SERIALIZABLE:串行讀取

  Oracle默認隔離級別為:讀已提交(READ COMMITTED)

三、MySQL的事務隔離級別有四種

  • 讀未提交 (Read uncommitted)
  • 讀已提交 (Read committed)
  • 可重復讀 (Repeated read)
  • 可串行化 (Serializable)

  MySQL默認隔離級別為:可重復讀 (Repeated read)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM