亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

臟讀幻讀不可重復讀

哪個大佬說一下為什么沒提交的數據可以被讀到?

正在回答

2 回答

數據在進行完操作但沒有進行提交時,他是存在日志當中的,只有提交之后,才會從日志中存到數據庫中

0 回復 有任何疑惑可以回復我~

? ? 一個事務讀到另一個事務,尚未提交的修改,就是臟讀。這里所謂的修改,除了Update操作,不要忘了,還包括
Insert和Delete操作。

舉個例子:預訂房間。
有一張Reservation表,往表中插入一條記錄,來訂購一個房間。

?事務1:在Reservation表中插入一條記錄,用于預訂99號房間。

?事務2:查詢,尚未被預定的房間列表,因為99號房間,已經被事務1預訂。所以不在列表中。

?事務1:信用卡付款。由于付款失敗,導致整個事務回滾。
? ? ? ? ? ? 所以插入到Reservation 表中的記錄并不置為持久(即它將被刪除)

? ? ? ?而事務2剛剛讀取時顯示99號房間不在列表中,即99號房間不可用,已經被預定。但是由于事務回滾現在99號房間則為可用。這就是臟讀。

? ? ? ? 由于數據庫的多版本性(不是版本號)和并發性,你可以理解成緩存區(是在數據沒提交之前的臨時存放區域),另外一個事務可能在緩存區讀取到這些已作出修改但未提交的數據,就出現了臟讀。


2 回復 有任何疑惑可以回復我~
#1

qq_既_定_0

醍醐灌頂!謝謝
2018-09-15 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

臟讀幻讀不可重復讀

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號