資料庫的隔離級別

2021-10-07 20:50:34 字數 445 閱讀 6168

什麼是資料庫隔離級別呢,總共有四種:

讀未提交(read-uncommited):

當事務a,修改了某資料,但未提交,事務b能讀到a的修改,此時該資料庫的隔離級別被設定了為讀未提交;

讀已提交(read-commited):

當事務a,修改了某資料,但未提交,事務b不能讀到a的修改,只有等a提交了事務,b才能讀到,此時該資料庫的隔離級別被設定了為讀已提交;

可重複讀(repeatable-read):

在可重複讀中,該sql第一次讀取到資料後,就將這些資料加鎖(悲觀鎖),其它事務無法修改這些資料,就可以實現重複讀取的資料也一樣。

序列化(serializable)

強制事務序列執行。

mysql如何解決幻讀

資料庫隔離級別

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