事務隔離級別
髒讀不可重複讀
幻讀讀未提交(read-uncommitted)是是
是不可重複讀(read-committed)否是
是可重複讀(repeatable-read)否否
是序列化(serializable)否否
否mysql預設支援 第三個: 可重複度
先解釋一下,可重複讀表示是 ''好'', 不可重讀表示的是 "不好",
可重複讀 表示, 你隨便讀,讀多少次都沒事,
不可重複讀表示: 事務 a 多次讀取同一資料,事務 b 在事務a多次讀取的過程中,對資料作了更新並提交,導致事務a多次讀取同一資料時,結果 不一致。
你不要重複讀了,不然結果可能不一樣(同乙個事務中)
msql 預設實現了可重複讀
幻讀:
來一張吧
如果看不到:
MySQL不可重複讀與幻讀
一直把不可重複讀與幻讀沒搞太明白,有天看到乙個說法覺得挺有道理 不可重複讀 針對的是單條記錄,另乙個事務修改了本事務讀的記錄,再次讀時,記錄改變了。解決此問題需要行鎖 幻讀 針對的是整個表,第一次讀9條記錄,第二次讀變成8條或者10條。解決此問題需要表鎖。mysql應該用的mvcc控制。個人理解 讀...
MySQL的不可重複讀和幻讀
不可重複讀 不可重複讀是指在同乙個事務中,兩次 或以上 查詢發現符合條件的資料記錄的字段值發生了變化,導致不可重複讀出現的原因主要是update操作 不可重複讀的例子 alice和bob開啟了資料庫的兩個事務 bob讀取post comment表中所有post id為1的資料 alice修改了pos...
SQLServer之建立不可重複讀
語法 set transaction isolation level repeatable read。指定語句不能讀取已由其他事務修改但尚未提交的行,並且指定,其他任何事務都不能在當前事務完成之前修改由當前事務讀取的資料。對事務中的每個語句所讀取的全部資料都設定了共享鎖,並且該共享鎖一直保持到事務完...