← Back to team overview

maria-developers team mailing list archive

Re: EXPLAIN in the slow query log

 

Hi, Sergei!

On Oct 18, Sergei Petrunia wrote:
> Hello,
> 
> After recent changes in the [SHOW] EXPLAIN architecture in MariaDB, it became 
> really easy to add an option to print EXPLAIN(*) output into the slow query log, 
> so I went ahead and implemented it.
> 
> @@log_slow_verbosity has got a 'explain' flag, and if it is on, the slow query
> log entries look like this:
> 
> # Time: 131017 21:26:02
> # User@Host: root[root] @ localhost []
> # Thread_id: 2  Schema: dbt3sf1  QC_hit: No
> # Query_time: 5.535819  Lock_time: 0.000350  Rows_sent: 1  Rows_examined: 65633
> ## <explain>
> ##   id select_type     table   type    possible_keys   key     key_len ref     rows    Extra
> ##   1  SIMPLE  nation  ref     PRIMARY,n_name  n_name  26      const   1       Using where; Using index
> ##   1  SIMPLE  customer        ref     PRIMARY,i_c_nationkey   i_c_nationkey   5       dbt3sf1.nation.n_nationkey      25124   Using index
> ##   1  SIMPLE  orders  ref     i_o_custkey     i_o_custkey     5       dbt3sf1.customer.c_custkey      7       Using index
> ## </explain>
> SET timestamp=1382030762;
> select count(*) from customer, orders, nation where c_custkey=o_custkey and c_nationkey=n_nationkey and n_name='GERMANY';
> 
> It seems, pt-slow-query-log has no problem parsing this.
> 
> Open questions:
> 
> - Is this syntax OK?

Yes, assuming you use tabs as column separators, not spaces.

> - Currently, some statements (like SHOW KEYS) print a dumb explain that
> shows that full table scan is used. There is a suggestion to not print
> EXPLAIN for any SHOW statements. Is this ok?

Yes. If users will complain we can always change it back later.

Regards,
Sergei


Follow ups

References