柚子快報(bào)激活碼778899分享:數(shù)據(jù)庫(kù) MySQL的表級(jí)鎖
柚子快報(bào)激活碼778899分享:數(shù)據(jù)庫(kù) MySQL的表級(jí)鎖
? ??????個(gè)人主頁(yè):五敷有你? ????
??系列專(zhuān)欄:面經(jīng)
??穩(wěn)中求進(jìn),曬太陽(yáng)
表級(jí)鎖
介紹
對(duì)于表鎖,分為兩類(lèi):
表共享讀鎖表獨(dú)占寫(xiě)鎖
語(yǔ)法
1. 加鎖:lock tables 表名... read/write
2. 釋放鎖:unlock tables /客戶端斷開(kāi)。
特點(diǎn):
1)讀鎖:不影響所有客戶端的讀,但會(huì)阻止所有客戶端的寫(xiě)。
如圖加了讀鎖后,進(jìn)行操作。
結(jié)果顯示,加了讀鎖不會(huì)影響所有客戶端的讀,但是會(huì)阻塞客戶端的寫(xiě)。
2)寫(xiě)鎖:會(huì)阻塞其他客戶端的讀,又會(huì)阻塞 其他客戶端的寫(xiě)。
如圖加了寫(xiě)鎖,進(jìn)行操作。
結(jié)果顯示:加了寫(xiě)鎖不會(huì)影響本客戶端的寫(xiě)和讀,但其他客戶端無(wú)法讀寫(xiě)。
元數(shù)據(jù)鎖(meta data lock,MDL)
????????MDL加鎖過(guò)程是系統(tǒng)自動(dòng)控制,無(wú)需顯式使用,在訪問(wèn)一張表的時(shí)候會(huì)自動(dòng)加上。MDL鎖主要作用是維 護(hù)表元數(shù)據(jù)的數(shù)據(jù)一致性,在表上有活動(dòng)事務(wù)的時(shí)候,不可以對(duì)元數(shù)據(jù)進(jìn)行寫(xiě)入操作。為了避免DML與 DDL沖突,保證讀寫(xiě)的正確性。
????????這里的元數(shù)據(jù),大家可以簡(jiǎn)單理解為就是一張表的表結(jié)構(gòu)。 也就是說(shuō),某一張表涉及到未提交的事務(wù) 時(shí),是不能夠修改這張表的表結(jié)構(gòu)的。
意向鎖
????????為了避免DML在執(zhí)行時(shí),加的行鎖與表鎖的沖突,在InnoDB中引入了意向鎖,使得表鎖不用檢查每行 數(shù)據(jù)是否加鎖,使用意向鎖來(lái)減少表鎖的檢查。
柚子快報(bào)激活碼778899分享:數(shù)據(jù)庫(kù) MySQL的表級(jí)鎖
相關(guān)鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。