MySQL_Oracle_事物的隔离级别
數據庫會話的設置:
1:臟讀
? ? ?情景:A事物讀取B事物修改了但是未提交的數據
? ? ?問題:若B回滾了事物,A就讀到了錯誤數據。
2:不可重復讀
? ? 情景:A事物查詢數據,B修改了數據,A又查詢數據
? ? 問題:A事物前后兩次數據不一樣
3:幻讀
? ? 情景:A事物查詢數據,B事物插入數據,A又查詢數據
? ? 問題:A事物感覺出現了幻覺,多了些數據
?
?
1.讀未提交(Read Uncommitted):這種隔離級別可以讓當前事務讀取到其它事物還沒有提交的數據。這種讀取應該是在回滾段中完成的。通過上面的分析,這種隔離級別是最低的,會導致引發臟讀,不可重復讀,和幻讀。
2.讀已提交(Read Committed):這種隔離級別可以讓當前事務讀取到其它事物已經提交的數據。通過上面的分析,這種隔離級別會導致引發不可重復讀,和幻讀。
3.可重復讀取(Repeatable Read):這種隔離級別可以保證在一個事物中多次讀取特定記錄的時候都是一樣的。通過上面的分析,這種隔離級別會導致引發幻讀。
4.串行(Serializable):這種隔離級別將事物放在一個隊列中,每個事物開始之后,別的事物被掛起。同一個時間點只能有一個事物能操作數據庫對象。這種隔離級別對于數據的完整性是最高的,但是同時大大降低了系統的可并發性。
轉載于:https://www.cnblogs.com/xiaoit/p/3420149.html
總結
以上是生活随笔為你收集整理的MySQL_Oracle_事物的隔离级别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#项目代码规范
- 下一篇: 对DataTable里数据进行排序