MySQL中鎖的相關(guān)問(wèn)題
鎖分類(lèi):
從對(duì)數(shù)據(jù)操作的粒度分 :
表鎖:操作時(shí),會(huì)鎖定整個(gè)表。行鎖:操作時(shí),會(huì)鎖定當(dāng)前操作行。
從對(duì)數(shù)據(jù)操作的類(lèi)型分:
讀鎖(共享鎖):針對(duì)同一份數(shù)據(jù),多個(gè)讀操作可以同時(shí)進(jìn)行而不會(huì)互相影響。寫(xiě)鎖(排它鎖):當(dāng)前操作沒(méi)有完成之前,它會(huì)阻斷其他客戶端的
行表鎖特點(diǎn):
MyISAM 表鎖:
如何加表鎖
MyISAM 在執(zhí)行查詢語(yǔ)句(SELECT)前,會(huì)自動(dòng)給涉及的所有表加讀鎖,在執(zhí)行更新操作(UPDATE、DELETE、
INSERT 等)前,會(huì)自動(dòng)給涉及的表加寫(xiě)鎖,這個(gè)過(guò)程并不需要用戶干預(yù),因此,用戶一般不需要直接用 LOCK
TABLE 命令給 MyISAM 表顯式加鎖。
簡(jiǎn)而言之,就是讀鎖會(huì)阻塞寫(xiě),但是不會(huì)阻塞讀。而寫(xiě)鎖,則既會(huì)阻塞讀,又會(huì)阻塞寫(xiě)。
此外,MyISAM 的讀寫(xiě)鎖調(diào)度是寫(xiě)優(yōu)先,這也是MyISAM不適合做寫(xiě)為主的表的存儲(chǔ)引擎的原因。因?yàn)閷?xiě)鎖后,其
他線程不能做任何操作,大量的更新會(huì)使查詢很難得到鎖,從而造成永遠(yuǎn)阻塞。
InnoDB 行鎖
行鎖介紹
行鎖特點(diǎn) :偏向InnoDB 存儲(chǔ)引擎,開(kāi)銷(xiāo)大,加鎖慢;會(huì)出現(xiàn)死鎖;鎖定粒度最小,發(fā)生鎖沖突的概率最低,并發(fā)度
也最高。
InnoDB 與 MyISAM 的最大不同有三點(diǎn):一是支持事務(wù);二是 采用了行級(jí)鎖;支持外鍵。
事務(wù):
事務(wù)是由一組SQL語(yǔ)句組成的邏輯處理單元。
事務(wù)的四大特性(ACID):
到此這篇關(guān)于MySQL中鎖的相關(guān)問(wèn)題的文章就介紹到這了,更多相關(guān)MySQL鎖問(wèn)題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL中on?duplicate?key?update的使用方法實(shí)例
在做數(shù)據(jù)統(tǒng)計(jì)的時(shí)候,我們經(jīng)常會(huì)用到mysql的on duplicate key update語(yǔ)法來(lái)自動(dòng)更新數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MySQL中on?duplicate?key?update的使用方法的相關(guān)資料,需要的朋友可以參考下2022-09-09解析數(shù)據(jù)庫(kù)分頁(yè)的兩種方法對(duì)比(row_number()over()和top的對(duì)比)
本篇文章是對(duì)數(shù)據(jù)庫(kù)分頁(yè)的兩種方法對(duì)比(row_number()over()和top的對(duì)比)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07MySQL的查詢計(jì)劃中ken_len的值計(jì)算方法
本文首先介紹了MySQL的查詢計(jì)劃中ken_len的含義;然后介紹了key_len的計(jì)算方法;最后通過(guò)一個(gè)偽造的例子,來(lái)說(shuō)明如何通過(guò)key_len來(lái)查看聯(lián)合索引有多少列被使用2017-02-02MySQL從庫(kù)維護(hù)經(jīng)驗(yàn)分享
這篇文章主要介紹了MySQL從庫(kù)維護(hù)經(jīng)驗(yàn)分享,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下2020-11-11MySQL數(shù)據(jù)庫(kù)中刪除重復(fù)記錄簡(jiǎn)單步驟
這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)中刪除重復(fù)記錄的相關(guān)資料,在使用數(shù)據(jù)庫(kù)時(shí),出現(xiàn)重復(fù)數(shù)據(jù)是常有的情況,但有些情況是允許數(shù)據(jù)重復(fù)的,而有些情況是不允許的,當(dāng)出現(xiàn)不允許的情況,我們就需要對(duì)重復(fù)數(shù)據(jù)進(jìn)行刪除處理,需要的朋友可以參考下2023-08-08SQL Server數(shù)據(jù)庫(kù)錯(cuò)誤5123解決方案
這篇文章主要介紹了SQL Server數(shù)據(jù)庫(kù)錯(cuò)誤5123解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06