99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

select......for update會(huì)鎖表還是鎖行?

jf_ro2CN3Fa ? 來源:油鍋里的豬 ? 作者:油鍋里的豬 ? 2022-10-10 15:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

驗(yàn)證

結(jié)合一下實(shí)例驗(yàn)證

結(jié)果

select查詢語句是不會(huì)加鎖的,但是select .......for update除了有查詢的作用外,還會(huì)加鎖呢,而且它是悲觀鎖。

那么它加的是行鎖還是表鎖,這就要看是不是用了索引/主鍵。

沒用索引/主鍵的話就是表鎖,否則就是是行鎖。

驗(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)提交,通過set @@autocommit=0; 設(shè)置為手動(dòng)提交。0代表手動(dòng)提交,1代表自動(dòng)提交。

a25c28ce-3734-11ed-ba43-dac502259ad0.png

結(jié)合一下實(shí)例驗(yàn)證

實(shí)例1:

使用主鍵id為條件去查詢,然后開啟另一個(gè)事務(wù)去更新數(shù)據(jù),更新被阻塞,加鎖了,鎖定要查詢的id為1的行數(shù)據(jù)。

圖一為第一個(gè)事務(wù),并且沒有提交事務(wù)

圖二為第二個(gè)事務(wù),去更新數(shù)據(jù),被阻塞了

圖三為第二個(gè)事務(wù),長(zhǎng)時(shí)間拿不到鎖報(bào)錯(cuò)。

a26a62a4-3734-11ed-ba43-dac502259ad0.pnga27d446e-3734-11ed-ba43-dac502259ad0.pnga28c0e68-3734-11ed-ba43-dac502259ad0.png

實(shí)例2:

我們?cè)陂_啟一個(gè)事務(wù)對(duì)另一條id為2的數(shù)據(jù)進(jìn)行更新,

a2a3bb8a-3734-11ed-ba43-dac502259ad0.pnga2b864ae-3734-11ed-ba43-dac502259ad0.png

實(shí)例3(索引):

一開始的創(chuàng)建表就age創(chuàng)建了唯一索引。

a2cb457e-3734-11ed-ba43-dac502259ad0.pnga2e2d342-3734-11ed-ba43-dac502259ad0.pnga306f9fc-3734-11ed-ba43-dac502259ad0.png

實(shí)例4:

使用普通的字段code去操作

a31543a4-3734-11ed-ba43-dac502259ad0.pnga32f5eb0-3734-11ed-ba43-dac502259ad0.pnga33cf674-3734-11ed-ba43-dac502259ad0.png

另一個(gè)事務(wù)我去更新另外一條數(shù)據(jù),如果我更新成功了,就是鎖行,失敗了就是鎖表。

a3517036-3734-11ed-ba43-dac502259ad0.pnga364ff20-3734-11ed-ba43-dac502259ad0.png

結(jié)果:

如果查詢條件用了索引/主鍵,那么select ..... for update就會(huì)進(jìn)行行鎖。

如果是普通字段(沒有索引/主鍵),那么select ..... for update就會(huì)進(jìn)行鎖表。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70751
  • select
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    4099

原文標(biāo)題:面試官問:select......for update會(huì)鎖表還是鎖行?

文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    什么是電磁控制板?24路控板的使用步驟概述

    電磁控制板是一種專用于控制電磁工作狀態(tài)的電子裝置,它可以接收指令并對(duì)電磁進(jìn)行通斷電操作,從而實(shí)現(xiàn)對(duì)相關(guān)設(shè)備的鎖定和解鎖控制。電磁本身依靠電流產(chǎn)生磁場(chǎng)作用力來吸附或釋放
    的頭像 發(fā)表于 07-14 16:26 ?153次閱讀
    什么是電磁<b class='flag-5'>鎖</b>控制板?24路<b class='flag-5'>鎖</b>控板的使用步驟概述

    電路與非自電路的比較

    在電氣控制系統(tǒng)中,電路的設(shè)計(jì)對(duì)于系統(tǒng)的穩(wěn)定性和可靠性至關(guān)重要。自電路和非自電路是兩種基本的控制電路類型,它們?cè)诠δ芎蛻?yīng)用上有著明顯的區(qū)別。 自電路 定義 自電路是一種在電路中加
    的頭像 發(fā)表于 01-18 10:11 ?821次閱讀

    電路模組選擇指南

    1. 自電路模組的基本原理 自電路模組的核心是一個(gè)繼電器,它包含一個(gè)控制線圈和一個(gè)或多個(gè)觸點(diǎn)。當(dāng)控制線圈通電時(shí),繼電器的觸點(diǎn)會(huì)閉合,即使控制線圈斷電,觸點(diǎn)也會(huì)保持閉合狀態(tài),這就是所
    的頭像 發(fā)表于 01-18 10:08 ?636次閱讀

    電路的類型和特點(diǎn)

    在電子工程領(lǐng)域,自電路是一種常見的設(shè)計(jì),它能夠使電路在沒有持續(xù)的觸發(fā)信號(hào)的情況下保持其狀態(tài)。這種電路的設(shè)計(jì)對(duì)于實(shí)現(xiàn)自動(dòng)化控制和減少人為干預(yù)至關(guān)重要。 一、自電路的類型 自電路可以根據(jù)其工作原理
    的頭像 發(fā)表于 01-18 10:03 ?925次閱讀

    電路如何設(shè)計(jì)

    電路的設(shè)計(jì)旨在實(shí)現(xiàn)電路在按下開關(guān)后能自動(dòng)保持持續(xù)通電,直到按下其他開關(guān)使之?dāng)嗦窞橹沟墓δ?。以下是?b class='flag-5'>鎖電路設(shè)計(jì)的基本步驟和要點(diǎn): 一、基本設(shè)計(jì)步驟 接入電源 : 將零線接入電路的指定端子(如十一號(hào)
    的頭像 發(fā)表于 01-18 09:56 ?1776次閱讀

    電路的應(yīng)用實(shí)例

    見的應(yīng)用之一。在這種系統(tǒng)中,當(dāng)用戶通過輸入密碼、刷卡或生物識(shí)別等方式驗(yàn)證身份后,電路會(huì)觸發(fā)門鎖打開。一旦門被打開,自電路會(huì)保持門鎖的開啟狀態(tài),直到門被關(guān)閉或系統(tǒng)被重置。這種設(shè)計(jì)不僅提高了安全性,還減少了對(duì)持續(xù)電源的
    的頭像 發(fā)表于 01-18 09:53 ?1264次閱讀

    存器的基本輸出時(shí)序

    在深入探討存器的輸出時(shí)序時(shí),我們需要詳細(xì)分析存器在不同控制信號(hào)下的行為表現(xiàn),特別是控制信號(hào)(如使能信號(hào)E)的電平變化如何影響數(shù)據(jù)輸入(D)到輸出(Q)的傳輸過程。以下是對(duì)存器輸出時(shí)序的詳細(xì)描述,旨在全面覆蓋其工作原理和時(shí)序
    的頭像 發(fā)表于 08-30 10:43 ?1179次閱讀

    時(shí)序邏輯會(huì)產(chǎn)生存器嗎

    時(shí)序邏輯電路本身并不直接“產(chǎn)生”存器,但存器是時(shí)序邏輯電路中的重要組成部分。時(shí)序邏輯電路(Sequential Logic Circuits)與組合邏輯電路(Combinational
    的頭像 發(fā)表于 08-28 11:03 ?895次閱讀

    rs存器不定狀態(tài)的含義是什么

    方面來理解: 一、輸入條件 RS存器有兩個(gè)主要的輸入端:S(Set,置位端)和R(Reset,復(fù)位端)。根據(jù)存器的設(shè)計(jì),當(dāng)S和R同時(shí)為高電平時(shí)(在某些設(shè)計(jì)中為低電平,具體取決于門電路的類型和邏輯約定),存器
    的頭像 發(fā)表于 08-28 10:42 ?1486次閱讀

    SR存器的特性、工作原理及應(yīng)用

    常常見,尤其是在寄存器、計(jì)數(shù)器和其他存儲(chǔ)設(shè)備中。在這篇文章中,我們將詳細(xì)討論SR存器的特性、工作原理、應(yīng)用和優(yōu)缺點(diǎn)。 SR存器特性 SR
    的頭像 發(fā)表于 08-28 09:27 ?7055次閱讀

    d存器解決了sr存器的什么問題

    D存器(Data Latch)和SR存器(Set-Reset Latch)是數(shù)字電路中常見的兩種存儲(chǔ)元件。它們?cè)跀?shù)字系統(tǒng)中扮演著重要的角色,用于存儲(chǔ)和傳遞信息。然而,這兩種存器在設(shè)計(jì)和應(yīng)用上
    的頭像 發(fā)表于 08-28 09:16 ?1184次閱讀

    rs存器和sr存器有什么區(qū)別嗎

    RS存器和SR存器是數(shù)字電路中兩種常見的存儲(chǔ)單元,它們?cè)诠δ芎蛻?yīng)用上有一些區(qū)別。 RS存器 RS存器,即Reset-Set存器,是
    的頭像 發(fā)表于 07-23 14:15 ?2334次閱讀

    存器電路通過什么觸發(fā)的

    存器(Latch)是一種在數(shù)字電路中廣泛使用的存儲(chǔ)元件,它能夠存儲(chǔ)一位二進(jìn)制信息。存器電路的觸發(fā)方式有很多種,包括同步觸發(fā)、邊沿觸發(fā)、電平觸發(fā)等。 一、存器的基本概念 存器是一
    的頭像 發(fā)表于 07-23 11:31 ?940次閱讀

    存器電路中的中間是什么元件

    存器電路概述 定義與功能 存器(Latch)是數(shù)字電路中的一種基本存儲(chǔ)元件,用于存儲(chǔ)一個(gè)位(1或0)的狀態(tài)。它能夠在特定輸入脈沖電平作用下改變狀態(tài),并保持該狀態(tài)直到下一個(gè)脈沖電平到來。存器
    的頭像 發(fā)表于 07-23 11:29 ?718次閱讀

    存器原態(tài)和新態(tài)的定義

    。 一、存器的基本概念 1.1 存器的定義 存器是一種具有兩個(gè)穩(wěn)定狀態(tài)的存儲(chǔ)元件,可以在沒有時(shí)鐘信號(hào)的情況下保持其存儲(chǔ)的信息。存器的兩個(gè)穩(wěn)定狀態(tài)分別稱為原態(tài)和新態(tài)。當(dāng)輸入信號(hào)發(fā)
    的頭像 發(fā)表于 07-23 10:21 ?1221次閱讀