不可重複讀和幻讀的區別

2021-07-29 15:49:24 字數 288 閱讀 7752

1,不可重複讀是指事務a讀取表中資料的時候,此時事務b對該資料進行了修改,導致事務a再次讀取該資料時,發現不一樣;兩次讀取相同的資料產生不同的結果;

2,幻讀是指事務a在修改某錶中的全部資料時,已經修改完畢,此時事務b又新插入一條記錄,導致事務a再次讀取該表中資料時,發現還有未修改的記錄,產生了幻覺(其實事務a已經是修改完表中的資料了,新增的這條會讓事務a誤認為剛才的操作並沒有修改完表中的記錄);

注:也就是說不可重複讀是針對其它事務修改了正在被讀取的資料(update),幻讀是針對其它事務向表中新增了一條記錄(insert)。

不可重複讀和幻讀的區別

當然,從總的結果來看,似乎兩者都表現為兩次讀取的結果不一致.但如果你從控制的角度來看,兩者的區別就比較大 對於前者,只需要鎖住滿足條件的記錄 對於後者,要鎖住滿足條件及其相近的記錄 我這麼理解是否可以?避免不可重複讀需要鎖行就行 避免幻影讀則需要鎖表 不可重複讀和幻讀的區別 很多人容易搞混不可重複讀...

髒讀,不可重複讀,幻讀區別

在了解髒讀,不可重複度,幻讀之前,首先要明白這三種情況的出現都是和資料庫併發事務有關聯的,如果所有的讀寫都按照佇列的形式進行,就不會出現問題。名詞解析和解決方案 髒讀 髒讀又稱無效資料讀出 讀出了髒資料 乙個事務讀取另外乙個事務還沒有提交的資料叫髒讀。例如 事務t1修改了某個表中的一行資料,但是還沒...

髒讀,不可重複讀,幻讀的區別

1.髒讀 髒讀是指在乙個事務處理過程裡讀取了另乙個未提交的事務中的資料。當乙個事務正在多次修改某個資料,而在這個事務中這多次的修改都還未提交,這時乙個併發的事務來訪問該資料,就會造成兩個事務得到的資料不一致。2.不可重複讀 不可重複讀是指在對於資料庫中的某個資料,乙個事務範圍內多次查詢卻返回了不同的...