事務隔離級別是指若干個併發的事務之間的隔離程度。
1.read uncommitted 讀未提交,可能出現髒讀、不可從復讀、幻讀
髒讀相對於其他事務(b)來說 本事務(a)做了修改,髒讀是讀到了錯誤資料
a修改 b讀取
a-start a update b-start b read b-end a rollback or update a-end
2.read committed 讀已提交,可能出現不可重複讀、幻讀,大多數資料庫預設級別(sql server oracle)
不可重複讀相對於本事務(a)來說 其他事務(b)做了修改,不可重複讀就是讀到了被修改了的資料,即兩次讀的資料不一樣
a修改 b修改
a-start a read b-start b update b-end a-update(此時資料已經不一致了) a-end
3.repeatable read 重複讀,可能出現幻讀,mysql預設級別
幻讀相對於本事務(a)來說 其他事務(b)做了插入,幻讀就是讀到了新插入的資料,有可能會產生漏改現象
a讀取/修改 b插入/刪除
a-start a read b-start a-end b-insert b-end a-start a read(此時發現有沒見過的,就像出現幻覺了) a-end
4.serializable 序列化,事務順序執行,效能低
以上如有偏差,還望指正。
參照部落格:
事務隔離級別的理解
資料庫事務的隔離級別有4種,由低到高分別為read uncommitted read committed repeatable read serializable 而且,在事務的併發操作中可能會出現髒讀,不可重複讀,幻讀。下面通過事例一一闡述它們的概念與聯絡。read uncommitted 讀未提...
對SQL事務隔離級別的簡單理解
資料庫事務 database transaction 是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向資料的資源。通過將一組相關操作組合為乙個要麼全部成功要麼全部失敗的單元,可以簡化錯誤恢復並使應用程式 更加可靠。乙個邏輯工作單元要...
Mysql隔離級別的理解
1 read uncommitted 讀取未提交 查詢時可以查詢到沒有提交的資料,導致髒讀 2 read committed 讀取提交內容 前一次查詢和後一次查詢中資料間有被增刪改,導致查詢資料不一致,導致不可重複讀,但不能讀取到未提交的資料 3 repeatable read 可重複讀 會導致幻讀...