Mysql 会导致锁表的语法
转自:http://blog.csdn.net/lifaming15/article/details/47904557
最近再找一些MySQL锁表原因,整理出来一部分sql语句会锁表的,方便查阅,整理的不是很全,都是工作中碰到的,会持续更新
笔者能力有限,如果有不正确的,或者不到位的地方,还请大家指出来,方便你我,方便大家。
此测试环境
mysql 5.5 基于innodb 引擎
[sql] view plaincopy
insert into table1 values select … from table2 ….
此种方法,会锁table2
[sql] view plaincopy
delete table1 from table1 inner join table2 on table1.id=table2.id …
此种方法,会锁table2
[sql] view plaincopy
update tabel1,table2 set table1.name=’feie’ where table1.id=table2.id
此种方法,会锁table2
[sql] view plaincopy
update tabel1,table2 set table1.name=’feie’ where table1.id=table2.id and table1.id=1;
此种方法,会锁table2.id=1的记录
—————————————–第二次编辑分割线————————————–
假设kid
是表table 的 一个索引字段 且值不唯一
1.如果kid 有多个值为12的记录那么:
update table set name=’feie’ where kid=12;
会锁表
2.如果kid有唯一的值为1的记录那么:
update table set name=’feie’ where kid=1;
不会锁
总结:用索引字段做为条件进行修改时, 是否表锁的取决于这个索引字段能否确定记录唯一,当索引值对应记录不唯一,会进行锁表,相反则行锁。
如果有两个delete
kid1 与 kid2是索引字段
语句1 delete from table where kid1=1 and kid2=2;
语句2 delete from table where kid1=1 and kid2=3;
这样的两个delete 是不会锁表的
语句1 delete from table where kid1=1 and kid2=2;
语句2 delete from table where kid1=1 ;
这样的两个delete 会锁表
总结:同一个表,如果进行删除操作时,尽量让删除条件统一,否则会相互影响造成锁表
Mysql 会导致锁表的语法相关推荐
- mysql锁表更新_Mysql InnoDB 数据更新导致锁表
一.数据表结构 CREATE TABLE `jx_attach` ( `attach_id` int(11) NOT NULL AUTO_INCREMENT, `feed_id` int(11) DE ...
- mysql 导致锁表 count_mysql count 锁表
数据库锁表与解锁 一.mysql 锁定表:LOCK TABLES tbl_nam... 数据库锁表与解锁 一.mysql 锁定表:LOCK TABLES tbl_nam... mysql锁测试_计算机 ...
- mysql delete 会锁表吗_MySQL高压缩引擎TokuDB 揭秘
原文出处:http://mysql.taobao.org/monthly/2017/07/04/ HybridDB for MySQL(原名petadata)是面向在线事务(OLTP)和在线分析(OL ...
- mysql delete 会锁表吗_我想进大厂之 MYSQL 夺命连环13问
来源 | 科技缪缪 想进大厂,mysql不会那可不行,来接受mysql面试挑战吧,看看你能坚持到哪里? 能说下 myisam 和 innodb 的区别吗? myisam引擎是5.1版本之前的默认引擎, ...
- mysql insert是锁表还是锁行_mysql 锁表还是锁行
关于mysql的锁行还是锁表,这个问题,今天算是有了一点头绪,mysql 中 innodb是锁行的,但是项目中居然出现了死锁,锁表的情况.为什么呢?先看一下这篇文章. 做项目时由于业务逻辑的需要,必须 ...
- MySQL InnoDB update锁表问题Record Locks
最近做的项目中出现了锁表的问题,导致表无法进行事务(DML)操作,经过排查发现,我们项目中的购物车表有个字段cart_id为uuid类型,并且未设置索引,这里的场景是根据cart_id进行更新内容,M ...
- mysql行级锁 表级锁 页级锁详细介绍_MySQL行级锁、表级锁、页级锁详细介绍
页级:引擎 BDB. 表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行 行级:引擎 INNODB , 单独的一行记录加锁 表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写 ...
- mysql 数据库查看锁表_【数据库】MySQL查看是否锁表
可直接在mysql命令行执行:show engine innodb status\G; 查看造成死锁的sql语句,分析索引情况,然后优化sql然后show processlist; 推荐课程:MySQ ...
- mysql 并发避免锁表_Yii+MYSQL锁表防止并发情况下重复数据的方法
本文实例讲述了Yii+MYSQL锁表防止并发情况下重复数据的方法.分享给大家供大家参考,具体如下: lock table 读锁定 如果一个线程获得在一个表上的read锁,那么该线程和所有其他线程只能从 ...
最新文章
- java创建二叉树并递归遍历二叉树
- 他们和机器人啪啪啪,并计划共度一生
- spring JdbcTemplate数据库查询实例
- JavaScript-分支和循环
- 在VS2012中实现Ext JS的智能提示
- Oracle 存储过程调用语句
- IOS高级开发之多线程(五)NSOperation 2
- 在mac os中设置环境变量
- eclipse代码量统计插件_推荐一波代码量、行数、提交量、作者等全维度统计神器...
- JAVA各类基础高级面试题和中间件面试题资料
- epson l201 l200清零软件 中文版 l111 l101清零软件 L350 L353 清零软件
- win7升级旗舰版密钥_WIN7无人值守应答文件的制作
- 以下数值中 不能用作C语言标识符,C语言题库及答案(选择题)
- vue在线预览excel
- 世界名模刘金金称赞续元金方是国宝,表示:振兴国医,义不容辞
- 不入门级代码教程(仅供参考)
- Python轻松搞定免费语音合成,利用百度AI为短视频配音
- Windows Embedded Standard 7 SP1 Runtime 下载
- matlab2015和2016关于fplot的一个区别
- 计算机视觉:卷积步长(Stride)
热门文章
- leetcode -- 303. 区域和检索 - 数组不可变
- 【讲解】1030 Travel Plan (30 分)【DFS】_41行代码Ac
- L1-010 比较大小(8行代码AC!!!)
- idea2020shezhi代码检查级别_ICT技术:阿里巴巴代码缺陷检测探索与实践
- android图片选择器框架支持长图,基于RxJava的Android图片选择器. – RxPicker
- java条件运算符类型转换_Java运算符,条件表达式,类型转换
- Linux系统的iptables防火墙、SNAT、DNAT原理与设置规则
- matlab中向量norm,【Matlab开发】matlab中norm范数以及向量点积、绘图设置相关
- Mysql数据库(三)——mysql数据库高级操作
- CiscoOSPF的选路原理