MySQL中的共享鎖和排他鎖及加鎖方式
MySQL 中的鎖可以從多個維度進行分類,其中從模式上可以分為共享鎖(Shared Lock,S Lock)和 排他鎖(Exclusive Lock,X Lock)。
共享鎖(Shared Lock,S Lock)
共享鎖,也被稱為讀鎖(Read Lock),共享鎖保證了數(shù)據(jù)的共享讀特性。
- 允許多個事務(wù)同時對同一數(shù)據(jù)資源進行讀取操作,即多個事務(wù)可以同時持有相同的共享鎖,并發(fā)讀取數(shù)據(jù)
- 阻塞排他鎖,即如果一個事務(wù)已經(jīng)持有了共享鎖,其他事務(wù)如果要獲取排他鎖,則需要等待共享鎖釋放。其實就是不允許任何事務(wù)對數(shù)據(jù)進行修改(因為修改數(shù)據(jù)要先加排它鎖)
共享鎖的加鎖方式
SELECT ... LOCK IN SHARE MODE SELECT ... FOR SHARE(MySQL 8.0 及以上版本)
排他鎖(Exclusive Lock,X Lock)
- 只能有一個事務(wù)持有排他鎖,其他事務(wù)無法獲取同樣的記錄上的排他鎖。即只允許一個事務(wù)修改或刪除某一行數(shù)據(jù)
- 阻塞排他鎖和共享鎖,即如果一個事務(wù)已經(jīng)持有了排他鎖,其他事務(wù)無法獲取共享鎖或排他鎖,其實就是不允許其他事務(wù)對該行數(shù)據(jù)進行加鎖讀取或修改(注意只是不能加共享鎖或排他鎖讀取,但正常查詢是快照讀,這是可以的)
排它鎖的加鎖方式
SELECT ... FOR UPDATE UPDATE語句 DELETE 語句
到此這篇關(guān)于MySQL中的共享鎖和排他鎖的文章就介紹到這了,更多相關(guān)mysql共享鎖和排他鎖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql 中 replace into 與 insert into on duplicate key update 的
這篇文章主要介紹了mysql 中 replace into 與 insert into on duplicate key update 的用法和不同點,結(jié)合實例形式分析了replace into 與 insert into on duplicate key update的功能、基本用法與操作注意事項,需要的朋友可以參考下2020-02-02Windows7下安裝使用MySQL8.0.16修改密碼、連接Navicat問題
這篇文章主要介紹了Windows7下安裝使用MySQL8.0.16修改密碼、連接Navicat問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06mysql連接數(shù)設(shè)置操作方法(Too many connections)
下面小編就為大家?guī)硪黄猰ysql連接數(shù)設(shè)置操作方法(Too many connections)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03