對於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就動不了,沒有權限了。加鎖嘛,就是這樣。
