MySQL 學習 --- 隔離級別

   文章圖片來自參考文章,圖片非原創

概述



事務隔離級別可解決的問題

        下面的章節將會解釋髒讀,不可重複度和幻讀。MySQL 默認的事務隔離級別是可重複讀(repeatable – read ) 。

事務隔離級別


隔離級別

讀未提交(read – uncommited)

           我們從名稱上級就可以瞭解這個過程,讀未提交,未commited 的數據有可能會回滾,那麼讀到的數據就是髒數據,這就是髒讀了。下面用以下實例來說明。

           先創建兩個客戶端,創建A

ru_a


         創建B , 並開啓事務,但是未提交

ru_b

          那此時我們看一下A讀到的數據,由 450 變成了400

ru_a1

        所以這就有問題了,此時B 要是回滾呢

ru_b1

         那麼A 此時操作呢

ru_a2


讀提交

         讀提交解決了髒讀,但是存在不可重複讀的問題 。上面由於讀取沒有提交的數據導致讀到了髒數據,那麼我就等你提交後再讀取咯。

          我們再看一下 B 沒提交,是否可以讀到修改的數據。

21


22


23

       上面可以看到A 在沒提交前讀取是沒有問題的,那麼提交後呢?

24

25

        兩次讀取是不一樣的,那麼就是說不可重複讀。


可重複讀(repeatable – read )

        可重複讀主要的特點是 : 解決了不可重複讀,但是存在幻讀。下面的例子展示數據是可重複讀的

31


32

        可以看到兩次讀取是一致的。

33

           

34


35


36



總結






參考資料

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