<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 1292字,需瀏覽 3分鐘

           ·

          2022-09-23 15:23

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



          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為條件去查詢,然后開啟另一個事務(wù)去更新數(shù)據(jù),更新被阻塞,加鎖了,鎖定要查詢的id為1的行數(shù)據(jù)。


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


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


          圖三為第二個事務(wù),長時間拿不到鎖報錯。




           

          實例2:


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




          實例3(索引):


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





          實例4:


          使用普通的字段code去操作





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




          結(jié)果:


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


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


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


          程序汪資料鏈接

          程序汪接的7個私活都在這里,經(jīng)驗整理

          Java項目分享  最新整理全集,找項目不累啦 07版

          堪稱神級的Spring Boot手冊,從基礎(chǔ)入門到實戰(zhàn)進階

          臥槽!字節(jié)跳動《算法中文手冊》火了,完整版 PDF 開放下載!

          臥槽!阿里大佬總結(jié)的《圖解Java》火了,完整版PDF開放下載!

          字節(jié)跳動總結(jié)的設(shè)計模式 PDF 火了,完整版開放下載!

          歡迎添加程序汪個人微信 itwang009  進粉絲群或圍觀朋友圈

          瀏覽 36
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国人免费无码区久久久免费 | 欧美V亚洲V综合V国产 | 日本免费黄色电影视频 | 国内三级免费看 | 欧洲成人网站 |