資料庫的事務隔離級別

2021-10-22 23:54:27 字數 645 閱讀 1105

事務的隔離性就是指,多個併發的事務同時訪問乙個資料庫時,乙個事務不應該被另乙個事務所干擾,每個併發的事務間要相互進行隔離。

事務的併發問題:

1.髒讀,讀取了其他事務未提交的資料

2.不可重複讀,a事務,第一次讀取資料後,b事務更新了資料(update),a事務再次讀取資料不一致

3.幻讀,a事務,第一次讀取資料後,b事務新增或刪除了資料(create、delete),a事務再次讀取資料不一致

為了解決事務的併發問題,資料庫提供了4種事務隔離級別。

1.讀未提交(read uncommitted),可以讀到未提交的內容,無法避免髒讀、不可重複讀、幻讀

2.讀提交(read committed),就是只能讀到已經提交了的內容,使用的「快照讀」,可避免髒讀,無法避免不可重複讀、幻讀

3.可重複讀(repeated read),使用的「快照讀」,但是,和「讀提交」不同的是,當事務啟動時,就不允許進行「修改操作(update)」了,可避免髒讀、不可重複讀,無法避免幻讀

4.序列化(serializable),事務「序列化順序執行」,也就是乙個乙個排隊執行,可避免髒讀、不可重複讀、幻讀,但執行效率差,效能開銷大。

mysql預設為repeatable-read,oracle、sql server預設為read committed

資料庫事務隔離級別

資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted rea...

資料庫事務隔離級別

資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted rea...

資料庫事務隔離級別

資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable 這四個級別可以逐個解決髒讀 不可重複讀 幻讀 這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted re...