1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        面試官:select......for update會鎖表還是鎖行

        共 1199字,需瀏覽 3分鐘

         ·

        2021-12-19 08:26

        不點藍字關(guān)注,我們哪來故事?




        ?正文如下?

        來源:blog.csdn.net/qq_42956376/article/details/109544539


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


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


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


        # 驗證:


        建表sql


        //id為主鍵  //name 為唯一索引CREATE TABLE `user` (`id` INT ( 11 ) NOT NULL AUTO_INCREMENT,`name` VARCHAR ( 255 ) DEFAULT NULL,`age` INT ( 11 ) DEFAULT NULL,    `code` VARCHAR ( 255 ) DEFAULT NULL,PRIMARY KEY ( `id` ),    KEY `idx_age` ( `age` ) USING BTREE ) ENGINE = INNODB AUTO_INCREMENT = 1570068 DEFAULT CHARSET = utf8


        需要關(guān)閉自動提交,通過set @@autocommit=0;? ?設(shè)置為手動提交。0代表手動提交,1代表自動提交。



        # 結(jié)合一下實例驗證


        ?實例1:


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


        • ?圖一為第一個事務,并且沒有提交事務

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

        • ?圖三為第二個事務,長時間拿不到鎖報錯。




        實例2:


        我們在開啟一個事務對另一條id為2的數(shù)據(jù)進行更新,




        實例3(索引):


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





        實例4:


        使用普通的字段code去操作





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




        # 結(jié)果:


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

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


        你好,來交個朋友 ~


        往期推薦

        如果打工人嫖娼被抓無法上班,是否能算曠工?

        推薦:Spring Cloud 整合 Nacos 實現(xiàn)服務配置中心

        性能最好的 Java 字符串拼接方法

        8 張漫畫圖解單點登錄系統(tǒng)

        Java 泛型通配符詳解


        //////?END?//////
        ↓ 點擊下方關(guān)注,看更多架構(gòu)分享?↓

        ↓ 或加泥瓦匠微信,交流更多技術(shù)?↓

        瀏覽 62
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            五月丁香六 | 国产精品不卡在线观看 | 夜夜撸日日操 | 影音先锋日韩无码 | 操操操操毛片到 | 班长露出强行被男生揉作文 | 国产变态另类 | 68xxxxxxxxx老师 | 美女被艹哭视频 | 囯产精品久久久久久久久久老司 |