MariaDB High Performance
上QQ阅读APP看书,第一时间看更新

The show explain command

The show explain feature is only available in MariaDB 10. It allows you to get an explanation directly from a running process, for example, if you use the loop.sql script once again. At the time of insertion, execute a show processlist command:

MariaDB [chapter2]> SHOW PROCESSLIST\G;
[...]
*************************** 2. row ***************************
 Id: 81
 User: root
 Host: localhost
 db: chapter2
 Command: Query
 Time: 0
 State: query end
 Info: INSERT INTO `s_explain`(`id`, `ts`) VALUES (FLOOR(RAND() * @MAX_INSERT), NOW())
Progress: 0.000
2 rows in set (0.00 sec)

We can see here the 81 ID, which is the INSERT command in the loop.sql script. We're going to analyze it with the show explain command:

MariaDB [chapter2]> SHOW EXPLAIN FOR 81\G;
*************************** 1. row ***************************
 id: 1
 select_type: INSERT
 table: s_explain
 type: ALL
possible_keys: NULL
 key: NULL
 key_len: NULL
 ref: NULL
 rows: NULL
 Extra:
1 row in set, 1 warning (0.01 sec)

This could be very interesting on a really long slow query, without having to wait till the end of it to perform an explain analysis.