關聯式資料庫的四個事務隔離級別,從最低到最高如下:
1、未提交讀(會發生髒讀)
乙個事務a訪問一條資料並修改了它,但尚未提交時,另乙個事務b讀取了這條資料。這時如果事務a回滾,則出現讀髒資料的情況。
2、讀提交(會發生不可重複讀):即同一事務內,多次讀同一資料。
重點是修改:同樣的條件,你讀取過的資料,再次讀取出來發現值不一樣了。
乙個事務a第一次在讀取某條資料後,事務b修改了這條資料,當事務a再次讀取這條資料時,發現已經和第一次讀取的值不一樣了。即a在同一事務內不能重複讀取一條資料。
3、可重複讀(會發生幻讀):
重點在於新增或者刪除:同樣的條件,第1次和第2次讀出來的記錄數不一樣。
第乙個事務a對乙個表中某列資料進行了修改,這種修改涉及到表中的全部資料行。同時,第二個事務b也修改這個表中的資料,這種修改是向表中插入一行新資料。那麼,操作第乙個事務a的使用者發現表中還有沒有修改的資料行,好象發生幻覺一樣。
4、序列化:
髒讀、不可重複讀、幻讀等問題都不會發生。
乙個事務結束前,阻止其它事務的insert、update操作。
大多數資料庫預設隔離級別為:read commited,少數資料庫預設隔離級別為repeatable read,如mysql innodb引擎。
關聯式資料庫事務隔離級別
關聯式資料庫的四個事務隔離級別,從最低到最高如下 1 未提交讀 會發生髒讀 乙個事務a訪問一條資料並修改了它,但尚未提交時,另乙個事務b讀取了這條資料。這時如果事務a回滾,則出現讀髒資料的情況。2 讀提交 會發生不可重複讀 即同一事務內,多次讀同一資料。重點是修改 同樣的條件,你讀取過的資料,再次讀...
資料庫事務隔離級別
資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted rea...
資料庫事務隔離級別
資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted rea...