国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql里update會不會鎖表

2024-07-24 12:32:55
字體:
來源:轉載
供稿:網友
  本篇內容主要講解“mysql中update會不會鎖表”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。

       下面就讓小編來帶大家學習“mysql中update會不會鎖表”吧!mysql中update會不會鎖表的兩種情況:1、update沒有索引時,語句前面一個事務通過commit提交,命令會正常運行結束,則update會鎖表;2、update添加索引時,命令不會卡住,不會鎖表,但會更新同一行導致鎖行。
 
  本教程操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。
 
  如果沒有索引,所以update會鎖表,如果加了索引,就會鎖行
 
  當前面一個事務通過commit提交了,命令就會正常運行結束,說明是被鎖表了。
 
  兩種情況:
 
  1、不帶索引

  2、帶索引
 
  前提介紹:
 
  方式:采用命令行的方式來模擬
 
  1.mysq由于默認是開啟自動提交事務,所以首先得查看自己當前的數據庫是否開啟了自動提交事務。
 
  命令:select @@autocommit;
 
  結果如下:
 
  如果是1,那么運行命令:set autocommit = 0;設置為不開啟自動提交
 
  實際例子:
 
  1.沒有索引
 
  運行命令:begin;開啟事務,然后運行命令:update tb_user set phone=11 where name="c1";修改,先別commit事務。
 
  再開一個窗口,直接運行命令:update tb_user set phone=22 where name=“c2”;會發現命令卡住了,但是當前面一個事務通過commit提交了,命令就會正常運行結束,說明是被鎖表了。
 
  2.給name字段加索引
 
  create index index_name on tb_user(name);
 
  然后繼續如1里面的操作,也就是一個開啟事務,運行update tb_user set phone=11 where name="c1";先不提交
 
  然后另一個運行update tb_user set phone=22 where name="c2";發現命令不會卡住,說明沒有鎖表
 
  但是如果另一個也是update tb_user set phone=22 where name="c1";更新同一行,說明是鎖行了
 
  到此,相信大家對“mysql中update會不會鎖表”有了更深的了解,不妨來實際操作一番吧!
 

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盱眙县| 思南县| 沁源县| 佳木斯市| 余庆县| 札达县| 阿坝县| 崇信县| 肇庆市| 钟祥市| 都兰县| 田东县| 巴中市| 永清县| 台湾省| 略阳县| 申扎县| 丰顺县| 陕西省| 都昌县| 加查县| 新民市| 紫金县| 休宁县| 博兴县| 祥云县| 遂溪县| 深水埗区| 潍坊市| 奎屯市| 常山县| 方山县| 嘉禾县| 江达县| 方城县| 图木舒克市| 万安县| 噶尔县| 巴青县| 新邵县| 波密县|