數據庫事務中髒讀和不可重複讀的悲觀鎖實現

  • 排他鎖:對一行數據加上排他鎖,其他事務不能對該行數據進行讀取和修改操作.
  • 共享鎖:對一行數據加上共享鎖,其他事務不能修改該行數據,但是可以同時獲取共享鎖,讀取該行數據.
  • 髒讀
    • 一個事務中,數據修改的時候加上排他鎖,修改完成,提交事務,然後釋放排他鎖.解決了事務1讀取到事務2修改數據,但是未提交的數據.
    • 數據讀取的時候加上共享鎖,讀取完釋放共享鎖.
  • 不可重複讀
    • 數據修改和髒讀相同,都是在一個事務中加上排他鎖,事務結束的時候釋放.
    • 數據讀取,則改爲了在事務開始的時候加上共享鎖,在事務結束的時候釋放共享鎖.這樣就避免了事務1在事務2修改數據成功前後,讀取數據結果不一致的結果.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章