mysql事务未提交会锁表吗(Mysql事务中Update是否会锁表?)
mysql事务未提交会锁表吗
Mysql事务中Update是否会锁表?两种情况:
1.带索引 2.不带索引
前提介绍:
方式:采用命令行的方式来模拟
1.mysq由于默认是开启自动提交事务,所以首先得查看自己当前的数据库是否开启了自动提交事务。
命令:select @@autocommit;
结果如下:
|
+ --------------+ | @@autocommit | + --------------+ | 0 | + --------------+ |
如果是1,那么运行命令:set autocommit = 0;设置为不开启自动提交
2.当前的数据库表格式如下
|
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 |
显然除了主键,我没有加任何索引
实际例子:
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";更新同一行,说明是锁行了
3.总结
如果没有索引,所以update会锁表,如果加了索引,就会锁行
到此这篇关于Mysql事务中Update是否会锁表的文章就介绍到这了,更多相关Mysql事务Update锁表内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://blog.csdn.net/agonie201218/article/details/109022700
- docker部署mysql并且自动启动(Docker 部署 Mysql8.0的方法示例)
- dockermysql实例(docker 连接宿主Mysql操作)
- mysql日常运维(MySQL从库维护经验分享)
- mysql查询逗号分割字符串(MySQL 字符串拆分实例无分隔符的字符串截取)
- 设置mysql字符集语句(MySQL修改字符集的实战教程)
- mysql中innodb的特性(Mysql InnoDB的锁定机制实例详解)
- mysql数据类型及用法(MySQL数据库重命名的快速且安全方法3种)
- mysql程序中判断select返回空值(解决MySQL读写分离导致insert后select不到数据的问题)
- mysql六大锁解析(MySQL 锁的相关知识总结)
- mysql密码设置(mysql密码中有特殊字符&在命令行下登录的操作)
- php连接mysql需要数据源吗(php连接mysql数据库最简单的实现方法)
- mysql数据库导入错误怎么处理(MySQL数据库导入导出数据之报错解答实例讲解)
- php考试复习题(php+mysql开发的最简单在线题库在线做题系统完整案例)
- mysql如何使用临时表(MySQL中临时表的使用示例)
- mysql编码设置
- mysql常用四种日志(MySQL 撤销日志与重做日志Undo Log与Redo Log相关总结)
- NVIDIA显卡份额冲上88 A饭发愁 游戏优化恐没A卡份了(NVIDIA显卡份额冲上88A饭发愁)
- AMD YES A卡还是N卡 A卡和N卡的区别(AMDYESA卡还是N卡)
- 以后显卡多了一个新选择,N卡和A卡外又多了个I卡(以后显卡多了一个新选择)
- 读卖乐园的彩灯(读卖乐园的彩灯)
- 新疆80后在淘宝卖干果 以前是 不务正业 如今帮乡亲致富(新疆80后在淘宝卖干果)
- 弄清楚了销 售 买 卖这四个字,母婴生意做起来就没那么难了(弄清楚了销售买)
热门推荐
- docker如何加volume(Dockerfile 中 VOLUME 与 docker -v 的区别说明)
- dedecms图片延迟加载(dedecms获取图片集多张图片实现方法循环输出)
- sql语句执行顺序
- 面试中常见的问题有哪些
- jquery导航栏动画(jQuery实现带展开动画的导航栏效果)
- 怎么写存储过程sql server(SqlServer存储过程实现及拼接sql的注意点)
- php mq使用方法(PHP使用ActiveMQ实现消息队列的方法详解)
- idea生成dockerfile(idea集合docker实现镜像打包一键部署)
- C#中app.config配置文件
- sql server导入数据csv文件(大容量csv快速内导入sqlserver的解决方法推荐)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9