數據庫并發操作會帶來以下四種情況:
丟失數據:修改丟失數據修改是指兩個事務T1和T2讀入同一數據并進行修改,T2提交的結果破壞了T1提交的結果,導致T1的修改被T2覆蓋掉了。
讀“臟”數據:讀“臟”數據是指一個事務讀了某個失敗事務運行過程中的數據,即事務T1修改了某一數據,并將修改結果寫回到磁盤,然后事務T2讀取了同一數據(是T1修改后的結果),但T1后來由于某種原因撤銷了它所做的操作,這樣被T1修改過的數據又恢復為原來的值,那么,T2讀到的值就與數據庫中實際的數據值不一致了。這時就說T2讀的數據為T1的“臟”數據,或不正確的數據。
不可重復讀(不一致的檢索):不可重復讀是指事務T1讀取數據后,事務T2執行了更新操作,修改了T1讀取的數據,T1操作完數據后,又重新讀取了同樣的數據,但這次讀完后,當T1再對這些數據進行相同操作時,所得的結果與前一次不一樣。
產生“幽靈”數據:產生“幽靈”數據實際屬于不可重復讀的范疇。它是指當事務T1按一定條件從數據庫中讀取了某些數據記錄后,事務T2刪除了其中的部分記錄,或者在其中添加了部分記錄,那么,當T1再次按相同條件讀取數據時,發現其中莫名其妙地少了(刪除)或多了(揑入)一些記錄。這樣的數據對T1來說就是“幽靈”數據或稱“幻影”數據。
回答所涉及的環境:聯想天逸510S、Windows 10。
數據庫并發操作會帶來以下四種情況:
丟失數據:修改丟失數據修改是指兩個事務T1和T2讀入同一數據并進行修改,T2提交的結果破壞了T1提交的結果,導致T1的修改被T2覆蓋掉了。
讀“臟”數據:讀“臟”數據是指一個事務讀了某個失敗事務運行過程中的數據,即事務T1修改了某一數據,并將修改結果寫回到磁盤,然后事務T2讀取了同一數據(是T1修改后的結果),但T1后來由于某種原因撤銷了它所做的操作,這樣被T1修改過的數據又恢復為原來的值,那么,T2讀到的值就與數據庫中實際的數據值不一致了。這時就說T2讀的數據為T1的“臟”數據,或不正確的數據。
不可重復讀(不一致的檢索):不可重復讀是指事務T1讀取數據后,事務T2執行了更新操作,修改了T1讀取的數據,T1操作完數據后,又重新讀取了同樣的數據,但這次讀完后,當T1再對這些數據進行相同操作時,所得的結果與前一次不一樣。
產生“幽靈”數據:產生“幽靈”數據實際屬于不可重復讀的范疇。它是指當事務T1按一定條件從數據庫中讀取了某些數據記錄后,事務T2刪除了其中的部分記錄,或者在其中添加了部分記錄,那么,當T1再次按相同條件讀取數據時,發現其中莫名其妙地少了(刪除)或多了(揑入)一些記錄。這樣的數據對T1來說就是“幽靈”數據或稱“幻影”數據。
回答所涉及的環境:聯想天逸510S、Windows 10。