数据库事务的隔离级别简单总结
生活随笔
收集整理的這篇文章主要介紹了
数据库事务的隔离级别简单总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據庫中事務的隔離級別有四種。級別由低到高分別為:Read uncommitted、Read committed、 Repeatable read和Serializable 四種。這四個級別能夠逐個解決臟讀、不可反復讀、幻讀這幾個問題。
假設當前隔離級別為Read uncommitted時。可能出現臟讀,就可以能讀到還未提交的暫時寫數據。
假設當前隔離級別為Read committed時。可以避免臟讀。但可能造成不可反復讀,即兩個事務同一時候對同一個數據進行改動時,發生的數據一致性和完整性的破壞。大部分的數據庫的默認級別都是Read committed,如SQL Server和Oracle。
假設當前隔離級別為Repeatable read時,能夠避免不可反復讀,即當前有兩個及以上數量的事務讀取同一數據時,數據庫選擇對第一個訪問該數據的事務可讀可寫,對第二條及其后的事務為僅僅讀。雖然這樣能夠避免不可反復讀,可是當事務A兩次讀取同一個數據時,假設期間有其它對數據庫可讀可寫的事務對數據進行改動時,那么事務A兩次讀取數據得到的結果極有可能是不一致的,即造成了幻讀。
Serializable序列化時數據庫中最高級別的事務隔離級別,在該級別下,事務依照順序運行,這樣可以避免臟讀、不可反復讀和幻讀,但所造成的花銷大、性能低下。
總結
以上是生活随笔為你收集整理的数据库事务的隔离级别简单总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RESTful设计原则和样例(开发前后台
- 下一篇: 动态规划问题之一马当先