系统不能使用,数据库上99%的会话等待是Waiting FOR TABLE FLUSH,找到等待时间最长的会话kill,系统恢复正常。是什么原因造成的呢?

日志分析:

Time: 2018-12-15T10:45:50.116723+08:00

User@Host: gg[gg] @ [10.92.221.131] Id: 9435656

Query_time: 58475.741298 Lock_time: 0.000561 Rows_sent: 0 Rows_examined: 32858598152

SET TIMESTAMP=1544841950;
CALL PRO_COUNT_XXXXX();

Time: 2018-12-15T10:45:50.128296+08:00

User@Host: root[root] @ [10.92.221.125] Id: 9440022

Query_time: 31548.800341 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0

SET TIMESTAMP=1544841950;
FLUSH /*!40101 LOCAL */ TABLES;

从日志上分析猜测是flush tables跟慢的SQL相互影响导致的问题。因为flush table会关闭所有的表,包括正在使用的表,并且会flush query cache,正在执行的SQL是正在打开表,所以flush tables被堵塞,它进而堵塞了后面的查询。实验验证:
session1:
INSERT INTO test1 SELECT a.* FROM test a,test b; #test表是一张几十万数据的表

session2:
FLUSH TABLES;

session3:
SELECT * FROM test;

session4:
SELECT * FROM test;

session5:
SHOW PROCESSLIST
Id USER HOST db Command TIME State Info


 1  root    localhost:48463  test    QUERY        48  Waiting FOR TABLE FLUSH  FLUSH TABLES                                     2  root    localhost:48480  test    SLEEP       124                           (NULL)                                           3  root    localhost:48490  test    QUERY        73  Sending DATA             INSERT INTO test1 SELECT a.* FROM test a,test b  4  root    localhost:48491  test    QUERY        37  Waiting FOR TABLE FLUSH  SELECT * FROM test                               6  root    localhost:48496  test    QUERY         0  init                     SHOW PROCESSLIST                                 8  root    localhost:48504  test    QUERY         8  Waiting FOR TABLE FLUSH  SELECT * FROM test

MySQL5.7 Waiting FOR TABLE FLUSH相关推荐

  1. mysql wait for flush,Mysql线程大量Wating For table flush问题分析

    早上8点种线上服务器大量报出以下异常 java.sql.SQLTransientConnectionException: MyHikariCP - Connection is not availabl ...

  2. 【MySQL经典案例分析】 Waiting for table metadata lock

    本文由云+社区发表 一. 问题是这样来的 ​ 2018年某个周末,接到连续数据库的告警,告警信息如下: 二. 苦逼的探索过程 1.总体的思路 看到too many connection的报错信息,基本 ...

  3. Waiting for table metadata lock

    [问题描述]:Mysql5.6的主从环境,在主库上添加字段始终添加不了,一直没有返回值. [排查分析]: 1.在测试环境上执行没有问题,很快就返回.因为数据量不大,也就10w左右(线上也是10w左右) ...

  4. avue里面的select怎么设置默认值_mysql大量的waiting for table level lock怎么办

    导读 遇到经典的MDL等待场景时怎么分析和处理.本文节选自叶金荣有赞<乱弹MySQL>专栏. MySQL从5.5版本开始,新增元数据锁,也就是metadata lock,简称MDL锁. M ...

  5. 架构师技能6:深入MySQL原理-Waiting for table metadata lock引发系统崩溃

    开篇语录:以架构师的能力标准去分析每个问题,过后由表及里分析问题的本质,复盘总结经验,并把总结内容记录下来.当你解决各种各样的问题,也就积累了丰富的解决问题的经验,解决问题的能力也将自然得到极大的提升 ...

  6. mysql出现waiting_MySQL出现Waiting for table metadata lock的原因以及解决方法

    MDL简述 ​ 为了在并发环境下维护表元数据的数据一致性,在表上有活动事务(显式或隐式)的时候,不可以对元数据进行写入操作.因此从MySQL5.5版本开始引入了MDL锁(metadata lock), ...

  7. java连接mysql执行ddl_Mysql 执行DDL导致Waiting for table metadata lock

    MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景.而且,一旦alter table TableA的操作停滞在Wa ...

  8. MySQL出现Waiting for table metadata lock的原因以及解决方法

    MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景.而且,一旦alter table TableA的操作停滞在Wa ...

  9. 【MySQL】MySQL出现Waiting for table metadata lock的原因、解决方法

    Waiting for table metadata lock MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景 ...

最新文章

  1. B站崩了上热搜,A站跟着躺枪!微信、支付宝:跟我们比起来这是小问题
  2. 37、iamgeview 图层叠加
  3. 创建,修改Table格式
  4. ACM POJ 2723 Get Luffy Out(2-SAT入门)
  5. Entity Framework表拆分
  6. 特殊的栈GetMin
  7. kodi pvr 不能安装_Kodi看电视直播教程 安装PVR IPTV Simple Client播放m3u8直播源
  8. MySQL如何使用.sql后缀的文件
  9. jedate选中日期后关闭弹层_jeDate 插件修改日期或时间后无法触发change事件。
  10. 详细解说Java 技术的新纪元
  11. 可视化神器Plotly玩转直方图
  12. 老徐和阿珍的故事:CAP是什么?超级爱放P吗?
  13. 网站SEO过程中的死链处理
  14. python调用pyd失效
  15. 百度地图API(WEB端/JavaScript API)--实际运用与扩展
  16. 手机产品设计之用户引导
  17. 计算机五笔字型编码方法,无字型五笔编码计算机中文输入法
  18. python_MOD13A3_NDVI 最大合成
  19. matlab怎么输入二维数组,MATLAB二维数组(矩阵)的创建
  20. vue实现一个日历切换功能

热门文章

  1. FSL——FDT数据统计处理TBSS
  2. 系统集成项目管理工程师—案例分析重点记忆内容
  3. 钢之炼金术师之去门的那一边铃声 钢之炼金术师之去门的那一边...
  4. 日加满网迷专属饮品“劲维”嗨爆新浪游戏ChinaJoy
  5. #今日说码栏目# 第二十三集 动画,旅行的热气球
  6. 微信二次开发需要多少钱,不得不说的内幕!
  7. Github语义分割框架(包含Unet,Unet++,MAnet等)
  8. 速收藏 超系统的大数据学习路线
  9. 深度学习提高trick小技巧
  10. Git教程:! [rejected] master -> master (fetch first)解决办法