select查詢語(yǔ)句是不會(huì)加鎖的,但是select .......for update
除了有查詢的作用外,還會(huì)加鎖呢,而且它是悲觀鎖。
那么它加的是行鎖還是表鎖,這就要看是不是用了索引/主鍵。
沒(méi)用索引/主鍵的話就是表鎖,否則就是是行鎖。
驗(yàn)證:
建表sql
//id為主鍵
//name為唯一索引
CREATETABLE`user`(
`id`INT(11)NOTNULLAUTO_INCREMENT,
`name`VARCHAR(255)DEFAULTNULL,
`age`INT(11)DEFAULTNULL,
`code`VARCHAR(255)DEFAULTNULL,
PRIMARYKEY(`id`),
KEY`idx_age`(`age`)USINGBTREE
)ENGINE=INNODBAUTO_INCREMENT=1570068DEFAULTCHARSET=utf8
需要關(guān)閉自動(dòng)提交,通過(guò)set @@autocommit=0;
設(shè)置為手動(dòng)提交。0代表手動(dòng)提交,1代表自動(dòng)提交。
基于 Spring Boot + MyBatis Plus + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能
-
項(xiàng)目地址:https://github.com/YunaiV/ruoyi-vue-pro
-
視頻教程:https://doc.iocoder.cn/video/
結(jié)合一下實(shí)例驗(yàn)證
實(shí)例1:
使用主鍵id為條件去查詢,然后開(kāi)啟另一個(gè)事務(wù)去更新數(shù)據(jù),更新被阻塞,加鎖了,鎖定要查詢的id為1的行數(shù)據(jù)。
-
圖一為第一個(gè)事務(wù),并且沒(méi)有提交事務(wù)
-
圖二為第二個(gè)事務(wù),去更新數(shù)據(jù),被阻塞了
-
圖三為第二個(gè)事務(wù),長(zhǎng)時(shí)間拿不到鎖報(bào)錯(cuò)。
實(shí)例2:
我們?cè)陂_(kāi)啟一個(gè)事務(wù)對(duì)另一條id為2的數(shù)據(jù)進(jìn)行更新,
實(shí)例3(索引):
一開(kāi)始的創(chuàng)建表就age創(chuàng)建了唯一索引。
實(shí)例4:
使用普通的字段code去操作
另一個(gè)事務(wù)我去更新另外一條數(shù)據(jù),如果我更新成功了,就是鎖行,失敗了就是鎖表。
基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能
-
項(xiàng)目地址:https://github.com/YunaiV/yudao-cloud
-
視頻教程:https://doc.iocoder.cn/video/
結(jié)果:
如果查詢條件用了索引/主鍵,那么select ..... for update
就會(huì)進(jìn)行行鎖。
如果是普通字段(沒(méi)有索引/主鍵),那么select ..... for update
就會(huì)進(jìn)行鎖表。
審核編輯 :李倩
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
原文標(biāo)題:面試官:select......for update 會(huì)鎖表還是鎖行?我拴 Q 了!!
文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
相關(guān)推薦
個(gè)車(chē)輛工程專業(yè)的研究生去面試,面試官最后問(wèn)他會(huì)不會(huì)嵌入式。雖然應(yīng)聘的崗位不是嵌入式工程師,但看來(lái)老板還是希望他能懂點(diǎn)這方面的知識(shí)。這個(gè)小插曲就說(shuō)明了一個(gè)重要的就業(yè)
發(fā)表于 11-05 19:35
?214次閱讀
時(shí)序邏輯電路本身并不直接“產(chǎn)生”鎖存器,但鎖存器是時(shí)序邏輯電路中的重要組成部分。時(shí)序邏輯電路(Sequential Logic Circuits)與組合邏輯電路(Combinational
發(fā)表于 08-28 11:03
?428次閱讀
方面來(lái)理解: 一、輸入條件 RS鎖存器有兩個(gè)主要的輸入端:S(Set,置位端)和R(Reset,復(fù)位端)。根據(jù)鎖存器的設(shè)計(jì),當(dāng)S和R同時(shí)為高電平時(shí)(在某些設(shè)計(jì)中為低電平,具體取決于門(mén)電路的類(lèi)型和邏輯約定),鎖存器
發(fā)表于 08-28 10:42
?826次閱讀
常常見(jiàn),尤其是在寄存器、計(jì)數(shù)器和其他存儲(chǔ)設(shè)備中。在這篇文章中,我們將詳細(xì)討論SR鎖存器的特性表、工作原理、應(yīng)用和優(yōu)缺點(diǎn)。 SR鎖存器特性表 SR鎖
發(fā)表于 08-28 09:27
?3616次閱讀
D鎖存器(Data Latch)和SR鎖存器(Set-Reset Latch)是數(shù)字電路中常見(jiàn)的兩種存儲(chǔ)元件。它們?cè)跀?shù)字系統(tǒng)中扮演著重要的角色,用于存儲(chǔ)和傳遞信息。然而,這兩種鎖存器在設(shè)計(jì)和應(yīng)用上
發(fā)表于 08-28 09:16
?612次閱讀
RS鎖存器和SR鎖存器是數(shù)字電路中兩種常見(jiàn)的存儲(chǔ)單元,它們?cè)诠δ芎蛻?yīng)用上有一些區(qū)別。 RS鎖存器 RS鎖存器,即Reset-Set鎖存器,是
發(fā)表于 07-23 14:15
?1290次閱讀
。 一、鎖存器的基本概念 1.1 鎖存器的定義 鎖存器是一種具有兩個(gè)穩(wěn)定狀態(tài)的存儲(chǔ)元件,可以在沒(méi)有時(shí)鐘信號(hào)的情況下保持其存儲(chǔ)的信息。鎖存器的兩個(gè)穩(wěn)定狀態(tài)分別稱為原態(tài)和新態(tài)。當(dāng)輸入信號(hào)發(fā)
發(fā)表于 07-23 10:21
?580次閱讀
%;推總銷(xiāo)額規(guī)模為28.1億元,同比增長(zhǎng)25.7%。隨著智能鎖市場(chǎng)規(guī)模逐年遞增,產(chǎn)品快速迭代,智能鎖行業(yè)已成為眾多企業(yè)競(jìng)相角逐的賽道。智能鎖的生產(chǎn)技術(shù)門(mén)檻日益提升
發(fā)表于 07-17 17:10
?363次閱讀
面試嵌入式工作時(shí),面試官可能會(huì)從多個(gè)方面考察應(yīng)聘者的知識(shí)、技能和經(jīng)驗(yàn)。以下是一些常見(jiàn)的嵌入式工作面試問(wèn)題,這些問(wèn)題涵蓋了基礎(chǔ)知識(shí)、專業(yè)技能、項(xiàng)目經(jīng)驗(yàn)和個(gè)人能力等方面
發(fā)表于 07-17 09:26
?2045次閱讀
互斥鎖和自旋鎖是操作系統(tǒng)中常用的同步機(jī)制,用于控制對(duì)共享資源的訪問(wèn),以避免多個(gè)線程或進(jìn)程同時(shí)訪問(wèn)同一資源,從而引發(fā)數(shù)據(jù)不一致或競(jìng)爭(zhēng)條件等問(wèn)題。 互斥鎖(Mutex) 互斥鎖是一種基本的
發(fā)表于 07-10 10:07
?518次閱讀
制,它在等待鎖的過(guò)程中,線程會(huì)不斷地檢查鎖的狀態(tài),直到鎖被釋放。自旋鎖適用于以下場(chǎng)景: 1.1 鎖
發(fā)表于 07-10 10:05
?1044次閱讀
電子發(fā)燒友網(wǎng)站提供《8位可尋址鎖存器數(shù)據(jù)表.pdf》資料免費(fèi)下載
發(fā)表于 05-23 10:15
?0次下載
電子發(fā)燒友網(wǎng)站提供《8位可尋址鎖存器數(shù)據(jù)表.pdf》資料免費(fèi)下載
發(fā)表于 05-17 10:57
?0次下載
許多開(kāi)發(fā)人員普遍認(rèn)為,Kafka 的設(shè)計(jì)本身就能保證不會(huì)丟失消息。然而,Kafka 架構(gòu)和配置的細(xì)微差別會(huì)導(dǎo)致消息的丟失。我們需要了解它如何以及何時(shí)可能丟失消息,并防止此類(lèi)情況的發(fā)生。
發(fā)表于 04-29 17:32
?1046次閱讀
智能鎖制造商U-tec宣布推出首款帶指紋讀取器的鎖閂智能鎖,支持Matter-over-Thread。
發(fā)表于 01-12 16:17
?1030次閱讀
評(píng)論