MySQL 5.7获取指定线程正在执行SQL的执行计划信息
短信预约 -IT技能 免费直播动态提醒
获取指定线程正在执行SQL的执行计划信息,可以使用下面语句;
当某个线程执行SQL消耗了很长的时间,可以使用这个语句找到正在执行大SQL的执行计划,在性能诊断上很有用。
mysql> show processlist;
+----+------+-----------+------+---------+------+--------------+----------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+--------------+----------------------------------------------+
| 17 | root | localhost | NULL | Query | 0 | starting | show processlist |
| 18 | neo | localhost | fire | Query | 257 | Sending data | select count(*) from t1 join t2 on t1.a=t2.a |
+----+------+-----------+------+---------+------+--------------+----------------------------------------------+
2 rows in set (0.00 sec)
mysql> EXPLAIN FOR CONNECTION 18;
+----+-------------+-------+------------+-------+---------------+----------+---------+-----------+--------+----------+--------------------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-------+------------+-------+---------------+----------+---------+-----------+--------+----------+--------------------------+
| 1 | SIMPLE | t1 | NULL | index | idx_t1_a | idx_t1_a | 5 | NULL | 392945 | 100.00 | Using where; Using index |
| 1 | SIMPLE | t2 | NULL | ref | idx_t2_a | idx_t2_a | 5 | fire.t1.a | 1 | 100.00 | Using index |
+----+-------------+-------+------------+-------+---------------+----------+---------+-----------+--------+----------+--------------------------+
2 rows in set (0.00 sec)
当某个线程执行SQL消耗了很长的时间,可以使用这个语句找到正在执行大SQL的执行计划,在性能诊断上很有用。
mysql> show processlist;
+----+------+-----------+------+---------+------+--------------+----------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+--------------+----------------------------------------------+
| 17 | root | localhost | NULL | Query | 0 | starting | show processlist |
| 18 | neo | localhost | fire | Query | 257 | Sending data | select count(*) from t1 join t2 on t1.a=t2.a |
+----+------+-----------+------+---------+------+--------------+----------------------------------------------+
2 rows in set (0.00 sec)
mysql> EXPLAIN FOR CONNECTION 18;
+----+-------------+-------+------------+-------+---------------+----------+---------+-----------+--------+----------+--------------------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-------+------------+-------+---------------+----------+---------+-----------+--------+----------+--------------------------+
| 1 | SIMPLE | t1 | NULL | index | idx_t1_a | idx_t1_a | 5 | NULL | 392945 | 100.00 | Using where; Using index |
| 1 | SIMPLE | t2 | NULL | ref | idx_t2_a | idx_t2_a | 5 | fire.t1.a | 1 | 100.00 | Using index |
+----+-------------+-------+------------+-------+---------------+----------+---------+-----------+--------+----------+--------------------------+
2 rows in set (0.00 sec)
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341