MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景。而且,一旦alter table TableA的操作停滞在Waiting for table metadata lock的状态,后续对TableA的任何操作(包括读)都无法进行,因为他们也会在Opening tables的阶段进入到Waiting for table metadata lock的锁等待队列。如果是产品环境的核心表出现了这样的锁等待队列,就会造成灾难性的后果。

show processlist; -- 查看数据库锁情况

kill id; -- kill 杀掉当前锁住的进程

select * from information_schema.innodb_trx -- 找到未提交事物的sid, 然后 kill 掉,让其回滚

select * from performance_schema.events_statements_current -- 查到执行失败的语句

alter table的语句是很危险的(其实他的危险其实是未提交事物或者长事务导致的),在操作之前最好确认对要操作的表没有任何进行中的操作、没有未提交事务、也没有显式事务中的报错语句。如果有alter table的维护任务,在无人监管的时候运行,最好通过lock_wait_timeout设置好超时时间,避免长时间的metedata锁等待。

转载于:https://www.cnblogs.com/zhouy-77253569/p/9371039.html

mysql 数据库锁一般处理相关推荐

  1. Mysql 数据库锁表的原因和解决方法

    Mysql 数据库锁表的原因和解决方法 参考文章: (1)Mysql 数据库锁表的原因和解决方法 (2)https://www.cnblogs.com/xinruyi/p/11108795.html ...

  2. 徐无忌MySQL笔记:MySQL数据库锁有几种?实现原理是什么?

    徐无忌MySQL笔记:MySQL数据库锁有几种?实现原理是什么? 完成:第一遍 1.数据库并发控制通过什么实现? 当多个事务并发方法对同一个数据进行操作 通过数据库锁实现对数据库的并发控制. 2.锁类 ...

  3. MySQL数据库锁介绍

    MySQL数据库锁介绍 1. 锁的基本概念 当并发事务同时访问一个资源时,有可能导致数据不一致,因此需要一种机制来将数据访问顺序化,以保证数据库数据的一致性. 锁就是其中的一种机制. 我们可以用商场的 ...

  4. MYSQL数据库锁概念

    MYSQL数据库锁概念 数据库中的锁,就是数据库协调多个进程或者线程并发访问某一资源的机制. 除了传统的计算机资源(CPU .RAM.磁盘I/O)的争用之外,数据也是提供一种多用户共享的资源. 锁是为 ...

  5. MySQL数据库锁机制之MyISAM引擎表锁和InnoDB行锁详解

    MySQL中的锁概念 Mysql中不同的存储引擎支持不同的锁机制.比如MyISAM和MEMORY存储引擎采用的表级锁,BDB采用的是页面锁,也支持表级锁,InnoDB存储引擎既支持行级锁,也支持表级锁 ...

  6. MySQL数据库——锁机制

    1 认识锁机制 在认识锁机制前,首先思考一个问题:在同一时刻,用户A和用户B同时要获取并修改sh_goods表中id等于2的stock库存量值,此时会发生什么呢? 假设在初始情况下,sh_ goods ...

  7. MySQL——数据库锁原理

    摘要 数据库锁设计的初衷是处理并发问题.作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则.例如,操作缓冲池中的LRU列表,删除.添加.移动LRU列表中的元素,为了保证一致 ...

  8. MySQL数据库锁详解

    目录 一.锁的分类 一.按照粒度分类 1.分类 2.代码操作 二.按照属性分类 1.共享锁 2.排他锁 3.代码操作 三.按照加锁方式分类 1.隐式的自动加锁 2.显示的加锁 四.按照算法分类 1.间 ...

  9. Mysql 数据库锁总结

    数据库锁 数据库锁主要是用来解决并发问题 从锁的影响范围,可以分为: 全局锁(库级别) 表级锁 行级锁 一.全局锁 全局锁是对整个数据库加锁,可以使用以下命令 Flush tables with re ...

最新文章

  1. 使用drbd进行磁盘扩容,小磁盘扩容大磁盘后大小未变的问题解决方法
  2. python中升序降序问题_飘逸的python - 有的升序有的降序的情况下怎么多条件排序...
  3. Linux系统下MySQL数据库的备份和恢复
  4. centos6.5搭建php网站,Centos6.5下搭建web环境(Apache+mysql+php+phpMyAdmin)
  5. mysql 备份html数据_MySQL自动化生成HTML页面(导出数据)极限SQL编程-sql文件怎么打开...
  6. 2020德勤面试开始了吗_2020公务员面试公告已出,5月28日开始面试
  7. 只删除字符串前面的‘*’号。
  8. 面试准备每日系列:计算机底层之并发编程(二)缓存行、一致性协议、伪共享、disruptor、CAS等待
  9. Node.js:常用工具、路由
  10. 景驰获雷诺领投A轮融资,更名WeRide.ai,联手广州公交推出无人出租
  11. 广州新一代域名注册量动态:11月下旬净增3425个
  12. js判断时间是早上还是下午_测血糖别在下午,测空腹血糖早上几点最准确?
  13. python twisted应用_如何通过Python(而不是通过Twisted)运行Twisted应用程序?
  14. 北京大学Cousera学习笔记--7-计算导论与C语言基础--基本数据类型变量常量
  15. 接口测试之抓包工具fidder
  16. python网络爬虫课程设计报告摘要_网络爬虫课程设计报告
  17. idgenerator 会重复吗_随机 ID 生成器
  18. Win10版本那么多怎么区别
  19. 【数据结构】链表相关OJ题 (万字详解)
  20. 微信小程序商城源码独立版/公众号/H5/DIY装修/营销/直播/拼团/秒杀/前端vue全开源代码

热门文章

  1. 使用母版頁是內容如何使用CSS和javascript
  2. 每天进步一点点《ML - 基于层次的聚类》
  3. Java使用Openimaj构建视觉词袋模型
  4. 稳健估计/M估计/最小二乘法
  5. VS2013+OpenCV3.0编译TLD跟踪算法
  6. VC 位图按钮CBitmapButton的使用
  7. 汇编语言8086CPU之寄存器总结
  8. CREO - 基础3 - 用拉升的方法构建一个双轮胎模型
  9. [TIPS]数据库 应用软件 MSSMS
  10. [gstreamer] [002] porting from 0.10 to 1.0 knew how