資料庫 不可重複讀與幻讀的區別

2021-09-27 08:03:52 字數 348 閱讀 7082

幻讀:

事務在插入已經檢查過不存在的記錄時,之前的檢測獲取到資料如同鬼影一般.

mysql預設的隔離級別為repetable read.因此只會出現幻讀的情況.

oracle預設的隔離級別為read committed.因此可能出現不可重複讀和幻讀.

不可重複讀的重點是修改

同樣的條件,你讀取過的資料,再次讀取出來發現值不一樣

幻讀的重點在於新增或刪除

同樣的條件,第一次和第二次讀出來的記錄數不一樣.

不可重複讀是指在同乙個事物內,兩個相同的查詢返回了不同的結果.

資料庫幻讀 髒讀 不可重複讀

要理解幻讀 髒讀 不可重複讀,必須先搞清楚事務的隔離級別 資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable 這四個級別可以逐個解決髒讀 不可重複讀 幻讀 這幾類問題。隔離級別 髒讀不可重...

資料庫髒讀 不可重複讀 幻讀

資料庫髒讀 不可重複讀 幻讀 1.髒讀 髒讀就是指當乙個事務正在訪問資料,並且對資料進行了修改,而這種修改還沒有提交到資料庫中,這時,另外乙個事務也訪問這個資料,然後使用了這個資料。2.不可重複讀 是指在乙個事務內,多次讀同一資料。在這個事務還沒有結束時,另外乙個事務也訪問該同一資料。那麼,在第乙個...

資料庫髒讀,幻讀,不可重複讀

指乙個事務a正在訪問資料,並且對該資料進行了修改,但是這種修改還沒有提交到資料庫中 也可能因為某些原因rollback了 這時候另外乙個事務b也訪問這個資料,然後使用了這個被a修改的資料,那麼這個資料就是髒的,並不是資料庫中真實的資料。這就被稱作髒讀。解決辦法 把資料庫事務隔離級別調整到read c...