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
- 怎样查看mysql的ddl窗口(详解MySQL8.0原子DDL语法)
- mysql的复制原理(浅析MySQL的WriteSet并行复制)
- oracle如何用脚本文件创建表空间(MySQL版oracle下scott用户建表语句实例)
- mysql事务级别设置(mysql在项目中怎么选事务隔离级别)
- mysql3种日志(mysql中的7种日志小结)
- django mysql设置(Django框架使用mysql视图操作示例)
- mysql的事务隔离级别怎么实现(mysql、oracle默认事务隔离级别的说明)
- mysql数据库如何删除重复记录(mysql数据库删除重复数据只保留一条方法实例)
- mysql5.7.36详细安装(CenOS6.7下mysql 8.0.22 安装配置方法图文教程)
- mysql为啥使用b+树(MySQL用B+树作为索引结构有什么好处)
- mysql完整教程(MySql新手入门的基本操作汇总)
- windowsmysql服务在哪里(解决windows service 2012阿里云服务器在搭建mysql时缺少msvcr100.dll文件的问题)
- rename重命名mysql表(MySQL 重命名表的操作方法及注意事项)
- 5.6以上版本mysql数据复制(MySQL5.7并行复制原理及实现)
- mysql分区怎么实现(MySql分表、分库、分片和分区知识深入详解)
- mysql高可用集群(MySQL之高可用集群部署及故障切换实现)
- 如何看待美国数十万加仑牛奶倒下水道 历史又重演了(如何看待美国数十万加仑牛奶倒下水道)
- 历史惊人的相似,美国80万加仑牛奶倒入下水道,意味着什么(历史惊人的相似)
- 美国数十万加仑牛奶倒进下水道,世界会重演1929年的大萧条吗(美国数十万加仑牛奶倒进下水道)
- 美国数十万加仑牛奶倒入下水道,贫民区食不果腹,历史再次重演(美国数十万加仑牛奶倒入下水道)
- 美国倒掉数十万加仑牛奶 上热搜第一,这一幕似曾相识(美国倒掉数十万加仑牛奶)
- 深度 倒牛奶 这一幕为何又在美国上演(深度倒牛奶)
热门推荐
- opencv调用摄像头图像识别(Python+OpenCV采集本地摄像头的视频)
- sqlserver多表查询(sqlserver 树形结构查询单表实例代码)
- python程序锁教程(在python里协程使用同步锁Lock的实例)
- python出现modify怎么办(解决Python找不到ssl模块问题 No module named _ssl的方法)
- react的事件绑定(React事件绑定的方式详解)
- python selenium用法详解(python selenium执行所有测试用例并生成报告的方法)
- css瀑布流布局
- pythonhtml文件转换成pdf库(Python3转换html到pdf的不同解决方案)
- centos7系统密码忘了怎么办(CentOS 7忘记密码解决方案过程图解)
- php添加数据到mysql数据库(PHP通过代码连接XAMPP数据库及MySQL数据库方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9