国产探花免费观看_亚洲丰满少妇自慰呻吟_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會不會鎖表”有了更深的了解,不妨來實際操作一番吧!
 

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青龙| 阜城县| 孝义市| 柘荣县| 东明县| 湟中县| 乌拉特中旗| 曲麻莱县| 汨罗市| 洛扎县| 日照市| 邹城市| 子长县| 永修县| 清水河县| 游戏| 舞钢市| 花莲县| 襄樊市| 海伦市| 迭部县| 姜堰市| 金塔县| 太仆寺旗| 临颍县| 泰安市| 徐汇区| 盘山县| 中方县| 平武县| 闽清县| 民勤县| 青川县| 柞水县| 芷江| 杭锦旗| 綦江县| 大关县| 廊坊市| 廊坊市| 玛曲县|