首頁 >資料庫 >mysql教程 >資料庫的並發操作可能帶來哪些問題

資料庫的並發操作可能帶來哪些問題

王林
王林原創
2020-06-20 09:32:218738瀏覽

資料庫的並發操作可能帶來哪些問題

資料庫的並發操作通常會帶來遺失更新問題,不一致分析問題和「髒資料」的讀出問題。

相關知識點介紹:

交易是並發控制的基本單位。

(相關教學建議:mysql教學

並發運算帶來的資料不一致性

1、遺失修改(Lost Update)

2、不可重複讀取(Non-repeatable Read)

3、幻讀(Phantom Read)

4、讀取「髒」資料(Dirty Read)

下面我們來分別看一下:

遺失修改:兩個交易T-1和T-2讀入同一資料並修改,T-2的提交結果破壞了T -1提交的結果,導致T-1的修改被遺失。 (修改-修改衝突)

不可重複讀:事務1讀取某一數據,事務2對其做了修改;當事務1再次讀該數據時,得到與前一次不同的值(讀-更新衝突)

幻讀:事務T-1以一定條件從資料庫中讀取了某些資料記錄,事務T-2刪除(插入) 了其中部分記錄,當T-1再次按相同條件讀取資料時,發現某些記錄神秘地消失(出現)了。 (讀-插入/刪除衝突)

髒數據: 事務T-1修改某一數據,並將其寫回磁碟;事務T-2讀取同一數據後,T-1由於某種原因被撤銷這時T-1,已修改過的數據恢復原值,T-2讀到的數據就與數據庫中的數據不一致T-2讀到的數據就為“臟”數據,即不正確的數據(修改-讀衝突)

資料不一致:由於並發操作破壞了交易的隔離性

#並發控制的目的

要用正確的方式調度並發操作,使一個使用者事務的執行不受其他事務的干擾,從而避免造成資料的不一致。

以上是資料庫的並發操作可能帶來哪些問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn