一、事務和隔離級別
事務的概念:事務是把對資料庫的一系列操作都看做乙個整體,要麼全部成功,要麼全部失敗,利用事務我們可以保證資料庫的完整性,事務具有原子性。
隔離級別:隔離級別定義了事務與事務之間的隔離距離。
髒讀(dirty read):當乙個事務讀取另乙個事務未提交的修改時,產生髒讀。
不可重複讀(nonrepeated read):同一查詢在同一事務中多次進行,由於其他事務提交所做的修改,導致每次返回的結果不同,此時發生不可重複讀。
幻讀(phantom read):同一查詢在同一事務中多次進行,由於其他事務或提交所做的新增或刪除操作,導致每次得到的不同的結果集,此時發生幻讀。
不可重複讀側重於修改,幻讀側重於新增或者刪除。解決不可重複讀只需要鎖住滿足條件的行,解決幻讀需要鎖表。
二、oracle的事務隔離級別有兩種
oracle預設隔離級別為:讀已提交(read committed)
三、mysql的事務隔離級別有四種
mysql預設隔離級別為:可重複讀 (repeated read)
資料庫的4種隔離級別
資料庫隔離級別
read uncommited 讀未提交 最低級別,可讀取未提交事物的資料,這會導致髒讀,比如 某時刻會話a修改了乙個資料,但還未提交,此時會話b,讀取了該資料,這是,會話a回滾了事物,這就導致資料出現了不一致狀態,這就是髒讀 read commited 提交讀 避免了髒讀,但會導致不可重複讀,例如...
資料庫隔離級別
資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀 不可重複讀 幻讀read uncommitted re...
資料庫隔離級別
資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted rea...