推薦教學:sql教學
#什麼是資料庫並發操作
資料庫是一個共享資源,可以提供多個使用者使用。這些使用者程式可以一個一個地串列執行,每個時刻只有一個使用者程式運行,執行對資料庫的訪問,其他使用者程式必須等到這個使用者程式結束以後方能對資料庫訪問。但是如果一個使用者程式涉及大量資料的輸入/輸出交換,則資料庫系統的大部分時間處於閒置狀態。因此,為了充分利用資料庫資源,發揮資料庫共享資源的特點,應該允許多個使用者並行地存取資料庫。但這樣就會產生多個用戶程式並發訪問相同數據的情況,若對並發操作不加控制就可能會訪問和存儲不正確的數據,破壞數據庫的一致性,所以數據庫管理系統必須提供並發控制機制。 並發控制機制的好壞是衡量一個資料庫管理系統效能的重要標誌之一。
資料庫並發操作帶來的問題
#(1)遺失更新
當兩個或多個事物讀入同一資料並修改,會發生遺失更新問題,即後一個事物更新的結果被前一事務所做更新覆蓋即當事務A和B同事進行時,事務A對資料已經改變但並未提交時B又對同一數據進行了修改(注意此時數據是A還未提交改變的數據),到時A做的數據改動丟失了
(2)不可重複讀取
當兩個資料讀取某個資料後,另一個事務執行了對該資料的更新,當前一事務再次讀取該資料(希望與第一次讀取的是相同的值)時,得到的資料與前一次的不一樣,這是由於第一次讀取資料後,事務B對其做了修改,導致再次讀取資料時與第一次讀取的資料不想同
(3)讀'髒資料'
當一個事務修改某個資料後,另一個事務對該資料進行了讀取,由於某種原因前一事務撤銷了對改資料的修改,即將修改過的資料恢復原值,那麼後一事務所讀到的資料與資料可得不一致,稱之為讀髒資料
注意:還有一個叫「幽靈數據」 幽靈數據與髒數據類似,不過幽靈數據是指事務提交之後讀到的數據,但是在讀取之後又進行了對前一事務的恢復,而髒資料是指未提交前讀取的資料
以上是資料庫的並發操作可能帶來的問題有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!