髒寫:如果乙個事務修改了另乙個未提交事務修改過的資料,那就意味著發生了髒寫(事務a修改還未提交的事務b所修改的變數,一旦事務b執行回滾操作,那麼事務a所做的操作就是無效的)
髒讀:如果乙個事務讀到了另乙個未提交事務修改過的資料,那就意味著發生了髒讀(事務a讀取事務b還未提交的資料,一旦事務b執行回滾操作,那麼事務a讀取到的資料就是不存在的)
不可重複讀:乙個事務對乙個變數的連續查詢讀取到不同的資料
幻讀:在乙個資料區間內,事務連續地按照一定條件查詢資料時讀取到了上次查詢所沒有的資料(強調新增,刪除或者記錄變少不算)
嚴重性:髒寫》髒讀》不可重複讀》幻讀
sql標準中的四種隔離級別
4個隔離級別:
另外在補一篇個人覺得寫得比較好的部落格鏈結,好文就要多看:
髒讀,不可重複讀,幻讀
髒讀,不可重複讀,幻讀是由於資料庫事務的隔離性導致的問題。髒讀 乙個事務讀取到了其它未提交事務操作的記錄。不可重複讀 乙個事務a內,首次查詢到一條相同記錄,然後事務b修改該條記錄並提交,事務a再次執行相同查詢,得到了事務b更新後的結果,事務a兩次相同的查詢,卻得到了不同的結果,這個叫做不可重複讀。是...
髒讀 不可重複讀 幻讀
髒讀 事務a使用了資料,但是還沒來得及提交,事務b就使用了這個資料,對於事務b來說就是髒讀。允許髒讀 sql server select from category with nolock 不可重複讀 事務a在9點和12點都會操作乙份資料,但是在10點的時候,事務b也操作了該份資料,並且使其數值進行...
髒讀 不可重複讀 幻讀
總結 對於不可重複讀和幻讀的區別是 不可重複讀圈了一塊地,這塊地不允許任何人動用,但是不管旁邊的地方是否開闢了一塊地。幻讀是不僅是圈的地,而且附近也不允許有新的地。這個對於區間查詢會有影響。所以不可重複讀和幻讀最大的區別是區間查詢的結果會不會一樣。幻讀保證結果一樣,但是不可重複讀不保證。mysql的...