<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>

          update會(huì)鎖表嗎?

          共 1206字,需瀏覽 3分鐘

           ·

          2022-03-18 14:29

          兩種情況:

          1.帶索引? 2.不帶索引

          前提介紹:

          方式:采用命令行的方式來(lái)模擬

          1.mysq由于默認(rèn)是開(kāi)啟自動(dòng)提交事務(wù),所以首先得查看自己當(dāng)前的數(shù)據(jù)庫(kù)是否開(kāi)啟了自動(dòng)提交事務(wù)。

          命令:select @@autocommit;

          結(jié)果如下:

          +--------------+
          | @@autocommit |
          +--------------+
          |? ? ? ? ? ? 0 |
          +--------------+

          如果是1,那么運(yùn)行命令:set autocommit =?0;設(shè)置為不開(kāi)啟自動(dòng)提交

          2.當(dāng)前的數(shù)據(jù)庫(kù)表格式如下

          tb_user | CREATE TABLE `tb_user` (
          ? `id` bigint(20) NOT NULL AUTO_INCREMENT,
          ? `name` varchar(32) DEFAULT NULL,
          ? `phone` varchar(11) DEFAULT NULL,
          ? `operator` varchar(32) DEFAULT NULL,
          ? `gmt_create` datetime DEFAULT NULL,
          ? `gmt_modified` datetime DEFAULT NULL,
          ? PRIMARY KEY (`id`)
          ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

          顯然除了主鍵,我沒(méi)有加任何索引

          ?

          實(shí)際例子:

          1.沒(méi)有索引

          運(yùn)行命令:begin;開(kāi)啟事務(wù),然后運(yùn)行命令:update tb_user set phone=11 where name="c1";修改,先別commit事務(wù)。

          再開(kāi)一個(gè)窗口,直接運(yùn)行命令:update tb_user set phone=22 where name="c2";會(huì)發(fā)現(xiàn)命令卡住了,但是當(dāng)前面一個(gè)事務(wù)通過(guò)commit提交了,命令就會(huì)正常運(yùn)行結(jié)束,說(shuō)明是被鎖表了。

          2.給name字段加索引

          create index index_name on tb_user(name);

          然后繼續(xù)如1里面的操作,也就是一個(gè)開(kāi)啟事務(wù),運(yùn)行update tb_user set phone=11 where name="c1";先不提交

          然后另一個(gè)運(yùn)行update tb_user set phone=22 where name="c2";發(fā)現(xiàn)命令不會(huì)卡住,說(shuō)明沒(méi)有鎖表

          但是如果另一個(gè)也是update tb_user set phone=22 where name="c1";更新同一行,說(shuō)明是鎖行了

          3.總結(jié)

          如果沒(méi)有索引,所以u(píng)pdate會(huì)鎖表,如果加了索引,就會(huì)鎖行



          瀏覽 26
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  高清无码人妻 | 欧美性爱99 | 黄色中文字幕 | 国产精品久久久久永久免费看 | 我想看韩国毛片 |