truncate table performance_schema.events_statements_history_long; truncate table performance_schema.events_stages_history_long; drop table if exists t0, t1; select * from performance_schema.setup_instruments where name like '%show_explain%'; NAME ENABLED TIMED wait/synch/cond/sql/show_explain YES YES stage/sql/Show explain YES YES statement/sql/show_explain YES YES # We've got no instances select * from performance_schema.cond_instances where name like '%show_explain%'; NAME OBJECT_INSTANCE_BEGIN # Check out if our cond is hit. create table t0 (a int); insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); connect con1, localhost, root,,; connection con1; connection default; connection con1; set @show_explain_probe_select_id=1; SET @saved_dbug = @@SESSION.debug_dbug; SET debug_dbug='d,show_explain_probe_join_exec_start'; select count(*) from t0 where a < 100000; connection default; show explain for $thr2; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t0 ALL NULL NULL NULL NULL 10 Using where Warnings: Note 1003 select count(*) from t0 where a < 100000 connection con1; count(*) 10 SET debug_dbug= @saved_dbug; select event_name from performance_schema.events_stages_history_long join performance_schema.threads using (thread_id) where event_name like '%show explain' and processlist_id=$thr1; event_name stage/sql/Show explain drop table t0;