《mysql基礎》4-隔離級別

mysql的InnoDB引擎支持事務,那麼事務之間也有可見性的問題,當我們開啓事務-提交事務的時候,我們想保證ACID屬性,

A 原子性

C 一致性

I 隔離性

D 持久性

隔離性的主要指標就是隔離級別,即事務之間的可見性的管控

隔離級別的分類

1-讀未提交:A事務可以讀取B事務未提交的變更,如B set a=3;A: read a,a=3;

2-讀提交: A事務可以讀取B事務已經提交的變更 

3-可重複讀 :A事務完成之前,讀取的數據不會因爲B事務的提交而變化

4-串行化:A事務執行完才能執行B事務,

上面的隔離級別的實現原理是什麼呢?

答案是-數據庫視圖-View。在數據庫中,如果在隔離級別是2-讀提交/3-可重複讀的情況下,在事務開始執行的時候,數據庫會創建數據的視圖,類似數據的副本。

2-讀提交的時候,多個線程的視圖是同一個,即commit的事物都會被所有事務同時讀到

3-可重複讀的時候,每個事務有自己單獨的視圖,不會因爲其他事務的提交而變化,所以不會讀到其他事務的變更。

1-讀未提交的隔離級別不會創建視圖。

4-串行隔離級別也不會創建視圖。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章