oracle數據庫的隔離級別-MS


參考文章:

1.oracle數據庫事務隔離級別

2.oracle數據庫事務隔離級別介紹

3.數據庫事務4種隔離級別及7種傳播行為

上面兩篇文章有詳細解釋,其中第二篇還有形象的事務圖

要弄清楚這個問題,首先要知道什么是隔離級別、隔離級別的作用是什么。

討論隔離級別的場景,主要是在  多個事務並發  的情況下

隔離級別:一個事務對數據庫的修改與並行的另一個事務的隔離程度

作用,即要解決的問題:
1.臟讀             (級別1可能會出現,級別2解決)

2.不可重復讀   (級別2可能會出現,級別3解決)

3.幻想讀          (級別3可能會出現,級別4解決)

oracle 的事務隔離級別:其他數據庫的隔離級別應該也是這些

級別1——讀未提交(read uncommitted)。事務A讀到了事務B  未提交 的數據,可能出現 臟讀,如果B回滾了事務,就會出現臟讀
級別2——讀提交(read committed)。事務A事先讀取了數據,事務B緊接了更新了數據,並提交了事務,而事務A再次讀取該數據時,數據已經發生了改變。可能出現 不可重復讀 

別3——重復讀(repeatable read)。   感覺這個不好理解,可能會出現 幻讀
級別4——串行化(serializable)。  最高級別的隔離級別。通過強制事務排序,使之不可能相互沖突,從而解決幻讀問題。簡言之,是在每個讀的數據行上加共享鎖。可能導致大量超時現象和鎖競爭 

 

oracle支持 2種 事務隔離級別:讀提交、串行化    默認:讀提交
mysql支持 4種 事務隔離級別。默認:可重復讀

 

分別解決的問題具體見上面兩篇文章

如何 查看/修改  oracle的事務隔離級別:待完善

 


免責聲明!

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



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