什么是共享读锁和排他写锁?
生活随笔
收集整理的這篇文章主要介紹了
什么是共享读锁和排他写锁?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
①由非更新(讀取)操作創建的鎖。其他用戶可以并發讀取數據,但任何事務都不能獲取數據上的排它鎖,直到已釋放所有共享鎖。共享鎖(S鎖)又稱為讀鎖,若事務T對數據對象A加上S鎖,則事務T只能讀A, 不能修改A;其他事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。這就保證了其他事務可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。
②排他鎖(X鎖),又稱為寫鎖、獨占鎖,是一種基本的鎖類型。若事務T對數據對象A加上X鎖,則只允許T讀取和修改A,其他任何事務都不能再對A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其他事務在T釋放A上的鎖之前不能再讀取和修改A。
共享鎖與排它鎖區別:
1、共享鎖只用于表級,排他鎖用于行級。
2、加了共享鎖的對象,可以繼續加共享鎖,不能再加排他鎖。加了排他鎖后,不能再加任何鎖。
3、比如一個DML操作(數據增刪改操作),就要對受影響的行加排他鎖,這樣就不允許再加別的鎖,也就是說別的會話不能修改這些行。同時為了避免在做這個DML操作的時候,有別的會話執行DDL (表結構更改等操作) ,修改表的定義,所以要在表上加共享鎖,這樣就阻止了DDL操作。
4、當執行DDL操作時,就需要在全表上加排他鎖。
總結
以上是生活随笔為你收集整理的什么是共享读锁和排他写锁?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html打印表格每页都有的表头和打印分页
- 下一篇: 电池耐用!诺基亚新机获得FCC认证 搭载