對於MySQL資料庫四種隔離等級

2022-03-20 01:29:43 字數 635 閱讀 4863

對於mysql事務有四種隔離級別,分別是以下四種:

1.讀未提交

2.讀提交

3.可重複讀

4.序列化(加鎖)

對於隔離我們都是說在併發的情況下發生的事情,讀取的資料在併發的情況下會發生什麼情況。

並且我們知道所有的事務都是原子性操作。但是在這些事務中隔離等級不一樣,併發的速度和安全情況都是不一樣的。等級越高,速度越慢但越安全。

1.讀未提交:表示根本什麼措施都沒有,a讀取了兩次資料,但是b中間修改了一下資料,那麼對於a來說,就會出現兩次讀取的資料不一致的情況。

2.讀提交:還是a讀取了兩次資料,但是b中間修改了資料,這次跟上次的區別是,如果b修改資料的操作沒有提交的話,a最後一次讀取的資料跟第一次讀取的資料是一樣的值。但是如果在b提交了之後的話,a讀取到的資料就是不一樣了,這就是這個提交的意義,b提交和不提交的情況下,a讀取的資料是不同的情況。

3.可重複讀:代表無論b怎麼改,只要a開始了這次事務,不論b在它的事務中修改資料沒有,對a來說都是沒有影響的。

換個角度是,只要a開始自己的事務,只要這個事務還沒有提交,那麼在這次事務中讀取的資料肯定是一樣的,這就是這個可重複讀的重複的意思。

4:序列化:這個就是直接加鎖了,對於a事務操作了資料,那麼b就動不了,沒有許可權了。加鎖嘛,就是這樣。

mysql四種隔離級別知乎 資料庫四種隔離級別

未提交讀 未提交讀比較好理解,就是說即使乙個事務沒有提交,那麼它所做的資料修改對其它事務也是可見的。這種隔離級別是最低等級的隔離,它會導致事務可以讀取到髒資料,在實際應用中很少見。提交讀 不可重複讀 和上面的相對應,只有當事務提交了,事務對資料的修改才會對其它事務可見。這種隔離級別被大多數資料庫系統...

資料庫事務四種隔離

未授權讀取 read uncommitted 允許髒讀取,但不允許更新丟失。如果乙個事務已經開始寫資料,則另外乙個資料則不允許同時進行寫操作,但允許其他事務讀此行資料。該隔離級別可以通過 排他寫鎖 實現。授權讀取 read committed 允許不可重複讀取,但不允許髒讀取。這可以通過 瞬間共享讀...

資料庫四種隔離級別

存在的問題 更新遺失。解決辦法就是下面的 可讀取未確認 寫事務阻止其他寫事務,避免了更新遺失。但是沒有阻止其他讀事務。存在的問題 髒讀。即讀取到不正確的資料,因為另乙個事務可能還沒提交最終資料,這個讀事務就讀取了中途的資料,這個資料可能是不正確的。解決辦法就是下面的 可讀取確認 寫事務會阻止其他讀寫...