mysql共享鎖與排他鎖

2021-08-28 19:41:58 字數 946 閱讀 9008

共享鎖與排他鎖都是對行級鎖而言的。

共享鎖(s鎖):又被稱為讀鎖,某條資料被事務a加上了共享鎖,其他事務也可以訪問到該條資料(僅能訪問不能修改)

排他鎖(x鎖):又被稱為寫鎖,事務a獲取了某行資料的排他鎖,其他事務就不能獲取該行的排他鎖了,而事務a是可以對該條資料進行讀取,修改操作。

拓展:mysql的innodb引擎,update,delete,insert都會自動給涉及到的資料加上排他鎖,select語句預設不會加任何鎖型別。select ...for update 就給給select語句加上排他鎖。如果事務a通過該種方式給某條資料加上了排他鎖,那麼事務b可以這樣進行讀取該條資料select...(去掉for update)。

1、表a資料如下

2、開啟事務a,查詢資料id=1的資料(給該條資料增加排他鎖),不提交,然後開啟事務b,同時也查詢id=1的資料,執行結果如下:

由於右側程序執行被阻塞,一直等待,最終報了鎖超時的錯誤。

3、將左側的內容取消增加的排他鎖會出現什麼情況呢?實驗結果如下:

發現結果也查詢出來了

最後補充下:slect語句新增共享鎖:select ...  lock in share mode

mysql排他鎖 mysql共享鎖與排他鎖

mysql鎖機制分為表級鎖和行級鎖,本文就和大家分享一下我對mysql中行級鎖中的共享鎖與排他鎖進行分享交流。共享鎖又稱為讀鎖,簡稱s鎖,顧名思義,共享鎖就是多個事務對於同一資料可以共享一把鎖,都能訪問到資料,但是只能讀不能修改。排他鎖又稱為寫鎖,簡稱x鎖,顧名思義,排他鎖就是不能與其他所並存,如乙...

MySQL 共享排他鎖 mysql 共享排他鎖

1 基礎知識 共享鎖又叫s鎖 share locks 共享鎖就是多個事務對於同一資料可以共享一把鎖,都能訪問到資料,但是只能讀不能修改。排他鎖又叫x鎖 exclusive locks,記為x鎖 排他鎖就是不能與其他鎖並存,只有等待鎖釋放完成以後其他事務才能得到鎖。下面是共享鎖與排他鎖的互斥關係 s ...

mysql共享鎖與排他鎖

mysql鎖機制分為表級鎖和行級鎖,本文就和大家分享一下我對mysql中行級鎖中的共享鎖與排他鎖進行分享交流。共享鎖又稱為讀鎖,簡稱s鎖,顧名思義,共享鎖就是多個事務對於同一資料可以共享一把鎖,都能訪問到資料,但是只能讀不能修改。排他鎖又稱為寫鎖,簡稱x鎖,顧名思義,排他鎖就是不能與其他所並存,如乙...