a、b代表兩個執行緒
1、讀未提交
a:開啟事務,初始化
b:開啟事務,初始化並修改資料
a:讀取資料,此事為a已修改的資料
b:回滾事務
a:發生髒讀
2、讀已提交(大多數資料庫採用的該策略)
a:開啟事務,初始化
b:開啟事務,初始化並修改資料
a:讀取資料,此時為b未修改的資料
b:提交事務
a:讀取資料,此時為b已經修改的資料(發生不可重複度的問題,即同一事務,讀取到不同的資料)
3、可重複度
a:開啟事務,初始化
b:開啟事務,初始化並修改資料
a:讀取資料,是b未修改的資料
b:提交事務
a:讀取資料,還是b未修改的資料
b:再次修改資料
a:讀取資料,還是未修改的資料(發生幻讀現象)
a:提交事務,再次讀取資料,是最新的資料
4、可序列化
a:開啟事務,初始化
b:只能進入等待狀態
a:提交事務
b:開啟事務,處理資料(效率低下)
事務的四個特徵:原子性、一致性、隔離性、持續性
資料庫隔離級別
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...