MySQL 5.7獲取指定執行緒正在執行SQL的執行計劃資訊

feelpurple發表於2016-06-12
獲取指定執行緒正在執行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)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-2118957/,如需轉載,請註明出處,否則將追究法律責任。

相關文章