我第一次知道,执行update的时候,where条件如果不走索引,会导致锁全表!

然后这个事务执行时间较长,导致后面的除了select语句,其他语句都被锁住不能执行了,导致生产重大事故!

还有,explain竟然只能用于select语句??!!

1.先看一下我的表里有三条数据:

2.用执行计划看一下我的update语句发现并没有走索引(explain是不能用在update语句上的,这里我将where条件拿出来,用select执行)

3.此时开启事务之后,执行update语句,是锁全表的!

此时我的另一个事务,修改不同的数据也会等待,显然是锁了全表:

此时释放我的事务,表解锁。

4.此时我将username字段创建索引:

查询一下看看是否走了索引:

此时再开启事务执行一下update语句:

第二个事务更改ls数据,同样也可以成功:

但是更新zhangsan的数据,就会被锁住,此时走索引的话,是锁住的单行数据,而不是单表:

后续有想学习explain的用法的同学,可以关注我专门出一篇文章介绍explain~

记一次生产事故-mysql执行update导致锁整表相关推荐

  1. 记录一次生产事故MYSQL执行语句错误,回滚数据

    MYSQL执行语句错误,使用binlog回滚数据: 早上接到 leader 通知,说有个开发不小心将数据库的一张表数据全量使用update语句更新错误了,由于之前的备份数据是一周之前的,与用户使用存在 ...

  2. 生产事故 java_记一次生产事故:30万单就这样没了!

    背景 你好,我是彤哥. 昨天晚上下班回家,在地铁上,老大突然打来电话,B系统生产环境响应缓慢,影响了A系统的使用,几万小哥收不了单,大概有30万单卡住了,你去帮忙定位一下. 我8点半左右到家,立马上线 ...

  3. MySql中的行锁和表锁的理解

    mysql 的 InnoDB引擎支持行锁,与Oracle不同,mysql的行锁是通过索引加载的,即是行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描. 表锁:不会出现死锁,发生 ...

  4. 深入认识二进制序列化--记一次生产事故的思考

    来自:特来电云计算与大数据 一 概要 二进制序列化是公司内部自研微服务框架的主要的数据传输处理方式,但是普通的开发人员对于二进制的学习和了解并不深入,容易导致使用过程中出现了问题却没有分析解决的思路. ...

  5. mysql 插入慢_记一次生产环境mysql数据库参数优化,值得收藏

    概述 最近在对各个系统的mysql做一些参数上的优化,也开了慢查询,准备后面针对特定sql再进一步优化.下面主要介绍一下一些优化的参数. 1.优化前mysql配置 可以看到基本上是没怎么做优化的. 2 ...

  6. MySql中的行锁,表锁

    1.行锁 作用在数据行上 加锁机制:在一个事务中当进行数据访问时比如: select * from persion where name="张三" 如果persion 表存在nam ...

  7. navicat下对mysql创建索引导致死锁,数据库崩溃,完美解决方案

    文章目录 写在前面 一.短事务场景下,执行DDL语句场景分析 1.短事务场景下,执行表字段添加操作 2.短事务场景下,执行表字段修改操作 3.短事务场景下,执行表字段删除操作 (1)往里添加一条数据试 ...

  8. MySQL中update修改数据与原数据相同会再次执行吗?

    你关注的就是我关心的! 作者:powdba 来源:阿里云栖社区 一.背景 本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗? 二 ...

  9. MySQL中update修改数据与原数据相同会再次执行吗

    背景 本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗? 测试环境 MySQL5.7.25 Centos 7.4 binlog_ ...

最新文章

  1. ONAP — 边缘自动化方案
  2. css选择器(css Selectors)的语法分析
  3. OpenCV 中值滤波
  4. Django 07模型层—单表操作(增删改查)
  5. JDK自带的实用工具native2ascii.exe
  6. centos 系统重新安装ssh
  7. Ubuntu14.04下Mongodb数据库可视化工具安装部署步骤(图文详解)(博主推荐)
  8. 鉴别一个人是否 js 入门的标准竟然是?!
  9. bouncycastle NoSuchFieldError:xxx 版本冲突
  10. IndentationError: unindent does not match any outer indentation level-报错问题
  11. 是什么构成了“人工智能”热潮?
  12. 掌握好这几点方法学习Linux,一定比别人更快入门运维!
  13. excel线性拟合的斜率_如何利用EXCEL求直线斜率?
  14. vue把数据导出为Excel表格的方法
  15. 【金猿产品展】战鹰——智能金融监管与声誉管理开拓者
  16. [山东科技大学OJ]1653 Problem C: 藏头诗
  17. python numpy逆_Numpy 中的矩阵求逆实例
  18. 上班族程序员怎么减肥
  19. python画图系列整理
  20. PCIe扫盲——PCIe简介

热门文章

  1. p20适配鸿蒙系统,适配鸿蒙OS,必须要升级到EMUI 11?最新机型升级名单公布
  2. java 矩阵题目_java练习本(20190604)
  3. 打开网站太慢linux如何检查,seo优化中网站访问慢的检测方法
  4. java用不用stream_Java parallelStream不使用预期的线程数
  5. int linux 原子操作_linux 原子操作
  6. python狗狗年龄换算_Python之美——一只数据狗的笔记[长期更新]
  7. valorant皮肤怎么获得_王者荣耀狂铁特工战影上线时间 狂铁新皮肤特工战影怎么获得...
  8. asp前端日历_asp显示日历效果
  9. php dingo和jwt,Laravel实现dingo+JWT api接口之配置篇
  10. k-core与k-shell的区别