mysql的樂觀鎖和悲觀鎖(一樂觀鎖)

樂觀鎖:

     樂觀鎖的操作其實是爲每一條數據加一個版本號。在設計表的時候加一個version字段,每次修改數據的時候都將其修改一次。

    樂觀鎖的應用場景:1.A用戶在10:00打開了一條文章的編輯頁面。如下頁面

         2.B用戶在10.01分的時候也打開了同一個文章的編輯頁面。

        3.A用戶在10.02分編輯了文章標題提交了數據。編輯如下並提交

  4.B用戶在10.04分編輯了文章的內容並提交了數據。編輯如下並提交

發現問題了嗎?A用戶此時已經修改了文章標題,但B用戶的提交卻將以往的舊數據覆蓋了回去。這時就是我們的樂觀鎖啓用的時候到了。

假設有版本號開始。兩個用戶點開編輯頁面的時候版本爲1 。當A用戶編輯了題目並提交時,版本號更新爲2,B用戶再提交的時候,是拿版本號爲1的數據取修改版本爲2的數據。我們能很明顯檢測出有問題,這時我們就提示修改錯誤。

我們爲表新增一個字段version用作版本使用,每次更新數據時,我們更新一下版本浩。當出現上面描述的問題時,我們就可以通過對照版本號來比較是否出現了髒讀的情況。

 

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