資料庫的隔離級別

2021-07-03 09:58:53 字數 516 閱讀 9809

對於同時執行的多個事務,當這些事務訪問資料庫中相同的資料時, 如果沒有採取必要的隔離機制, 就會導致各種併發問題:

情形一:髒讀

對於兩個事務t1、t2,t1 讀取了已經被 t2 更新但還沒有被提交的字段,之後,若 t2 回滾, t1讀取的內容就是臨時且無效的。

情形二:不可重複讀

對於兩個事物 t1、t2,t1 讀取了乙個字段,然後 t2 更新了該字段。之後,t1再次讀取同乙個字段,值就不同了。

情形三:幻讀

對於兩個事務 t1、 t2, t1 從乙個表中讀取了乙個字段,然後 t2 在該表中插入了一些新的行。之後, 如果 t1 再次讀取同乙個表,就會多出幾行.

資料庫事務的隔離性: 資料庫系統必須具有隔離併發執行各個事務的能力,使它們不會相互影響,避免各種併發問題。

乙個事務與其他事務隔離的程度稱為隔離級別。資料庫規定了多種事務隔離級別, 不同隔離級別對應不同的干擾程度,隔離級別越高,資料一致性就越好,但併發性越弱

資料庫隔離級別

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...