mysql Waiting for table flush出现的原因及场景复现--analyze table

测试环境

centos7.6+mysql5.6.46

场景复现–analyze table

会话1:模拟慢查询
mysql> select fname,sleep(60) from t1;

会话2:分析表
mysql> analyze table t1;
±--------±--------±---------±---------+
| Table | Op | Msg_type | Msg_text |
±--------±--------±---------±---------+
| yjgk.t1 | analyze | status | OK |
±--------±--------±---------±---------+
会话3:再次查询该被hang住了
mysql> select * from t1;
查看发台进程

mysql> show processlist;
+----+-----------------+-----------+------+---------+-------+-------------------------+--------------------------------+
| Id | User            | Host      | db   | Command | Time  | State                   | Info                           |
+----+-----------------+-----------+------+---------+-------+-------------------------+--------------------------------+
|  1 | event_scheduler | localhost | NULL | Daemon  | 68624 | Waiting on empty queue  | NULL                           |
|  9 | root            | localhost | yjgk | Query   |    93 | User sleep              | select fname,sleep(64) from t1 |
| 10 | root            | localhost | yjgk | Sleep   |    90 |                         | NULL                           |
| 11 | root            | localhost | yjgk | Query   |    79 | Waiting for table flush | select * from t1               |
| 12 | root            | localhost | yjgk | Query   |     0 | init                    | show processlist               |
+----+-----------------+-----------+------+---------+-------+-------------------------+--------------------------------+

查看打开的表
mysql> show open tables where in_use>=1;
±---------±------±-------±------------+
| Database | Table | In_use | Name_locked |
±---------±------±-------±------------+
| yjgk | t1 | 1 | 0 |
±---------±------±-------±------------+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值