[size=medium][b]髒讀[/b],又稱無效資料的讀出,是指在資料庫訪問中,事務t1將某一值修改,然後事務t2讀取該值,此後t1因為某種原因撤銷對該值的修改,這就導致了t2所讀取到的資料是無效的。
[b]不可重複讀[/b],是指在是指在資料庫訪問中,乙個事務範圍內兩個相同的查詢卻返回了不同資料。這是由於查詢時系統中其他事務修改的提交而引起的。比如事務t1讀取某一資料,事務t2讀取並修改了該資料,t1為了對讀取值進行檢驗而再次讀取該資料,便得到了不同的結果。
[b]幻讀[/b],又稱丟失修改,是指在資料庫訪問中,兩個事務t1和t2同時寫入同一資料,t2提交的結果破壞了t1提交的資料,使t1對資料庫的修改丟失,彷彿出現了幻覺一樣,造成了資料庫中的資料錯誤。
read_uncommitted 會出現髒讀、不可重複讀、幻讀 ( 隔離級別最低,併發效能高 )
read_committed 會出現不可重複讀、幻讀問題(鎖定正在讀取的行)
repeatable_read 會出幻讀(鎖定所讀取的所有行)
serializable 保證所有的情況不會發生(鎖表)[/size]
資料庫事務ACID和四個隔離級別
在實際的業務場景中,併發讀寫引出了和事務控制的需求。優秀的事務處理能力是關係型資料庫 特別是oracle等商用rdbms 相對於正當風口的nosql資料庫的一大亮點。但這也從另一方面說明了事務控制的複雜性 正因為過於複雜,大部分nosql都沒提供事務支援或只提供部分事務支援。乙個資料庫事務是 乙個被...
事物隔離的四個級別
隔離級別 內容特點 read uncommited 讀未提交 向資料庫中插入了乙個值,此時並沒有提交,但是資料庫中已經看到這個值 例如 向資料庫update值 101,此時發現提交錯誤,查詢時發現值已經變成101,事物回滾後重新插入100 並提交,此時再查資料庫值已經變成100,讀未提交容易觸發髒讀...
資料庫四個隔離級別七大傳播事務
資料庫事務4種隔離級別及7種傳播行為 三 髒讀 不可重複讀 幻讀 一 隔離級別 事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。iso...