用簡單的例子講一下 臟讀,幻讀,不可重復讀


戲說一下事務中的臟讀,幻讀,和不可重復讀

臟讀:事務A在執行的過程修改了數據庫中的數據,這時事務B插了進來,讀取到了事務A修改之后的數據並且提交了上去,這時事務A由於某些原因進行了回滾,那么事務B讀取的就是事務A的臟數據

  相當與你在外面吃燒烤,然后有一塊肉掉了,恰好掉到了一個外出覓食的螞蟻面前,螞蟻立即掉頭回去報告,這是你把掉的肉撿了起來,當螞蟻帶他的兄弟們回來的時候,發現沒有肉,這時候螞蟻帶給蟻群的就是臟數據。

不可重復讀:事務A讀取了一組數據,在執行邏輯的時候,事務B修改了這條數據,當事務A再次讀取時候,發現數據前后不一致了,這就是不可重復讀。

  相當與你在外面吃燒烤,掉了一塊肉,恰好掉到了一個外出覓食的螞蟻面前,螞蟻回去報告,這是你把掉的肉撿了起來,卻意外的碰掉了桌子上的韭菜,這是你嘆了一口氣,說不想撿了,當螞蟻帶他的兄弟們回來的時候,發現這個地方不是肉,而是韭菜,這時候螞蟻帶給蟻群的就是不可重復讀數據

幻讀:事務A根據條件讀取了數據,這時事務B插了進來,修改了數據庫里的數據,導致事務A在做第二次查詢的時候發現第二次讀取的數據比第一次要多,這就是幻讀

  相當與你在外面吃燒烤,掉了一塊肉,恰好掉到了一個外出覓食的螞蟻面前,螞蟻回去報告,你不想撿了,這時你又掉了一塊,你嘆了一口氣也沒撿,當螞蟻帶他的兄弟們回來的時候,發現這個不是一塊肉,而是兩塊,這時候螞蟻帶給蟻群的就是幻讀數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM