並發操作帶來的資料不一致性包括三類:遺失修改、無法重複讀取和讀取「髒」資料。避免不一致性的方法和技術就是並發控制,最常用的技術是封鎖技術;也可以用其他技術,例如在分散式資料庫系統中可以採用時間戳法來進行並發控制。
並發操作帶來的資料不一致包含三類:遺失修改、無法重複讀取和讀取「髒」資料。
1、遺失修改(Lost Update)
#兩個交易T1和T2讀入相同資料並修改,T2提交的結果破壞了(覆蓋了)T1提交的結果,導致T1的修改被遺失。
2、不可重複讀取(Non -Repeatable Read)
#無法重複讀取是指事務T1讀取資料後,事務T2執行更新操作,使T1無法再現前一次讀取結果。
3、讀取「髒」資料(Dirty Read)
讀「髒」資料是指事務T1修改某一數據,並將其寫回磁碟,事務T2讀取同一數據後,T1因某種原因被撤銷,這時T1已修改過的數據恢復原值,T2讀到的數據就與數據庫中的數據不一致,則T2讀到的數據就為「髒」數據,即不正確的數據。
用什麼方法能避免各種不一致的情況?
避免不一致性的方法和技術就是並發控制,最常用的技術是封鎖技術;也可以用其他技術,例如在分散式資料庫系統中可以採用時間戳法來進行並發控制。
更多相關知識,請造訪:PHP中文網!
以上是並發操作可能會產生哪幾類資料不一致?的詳細內容。更多資訊請關注PHP中文網其他相關文章!