1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

MDEV-27021 Add explicit indication of SHOW EXPLAIN/ANALYZE.

1. Add explicit indication that the output is produced by
SHOW EXPLAIN/ANALYZE FORMAT=JSON command.
2. Remove useless "r_total_time_ms" field from SHOW ANALYZE FORMAT=JSON
output when there is no timed statistics gathered.
3. Add "r_query_time_in_progress_ms" to the output of SHOW ANALYZE FORMAT=JSON.
This commit is contained in:
Oleg Smirnov
2022-02-16 13:03:46 +07:00
committed by Sergei Petrunia
parent d1a1ad4c28
commit a0475cb9ca
65 changed files with 207 additions and 187 deletions

View File

@ -1,3 +1,3 @@
# The time on ANALYSE FORMAT=JSON is rather variable # The time on ANALYSE FORMAT=JSON is rather variable
--replace_regex /("(r_total_time_ms|r_table_time_ms|r_other_time_ms|r_buffer_size|r_filling_time_ms)": )[^, \n]*/\1"REPLACED"/ --replace_regex /("(r_total_time_ms|r_table_time_ms|r_other_time_ms|r_buffer_size|r_filling_time_ms|r_query_time_in_progress_ms)": )[^, \n]*/\1"REPLACED"/

View File

@ -1715,7 +1715,7 @@ performance-schema-max-socket-classes 10
performance-schema-max-socket-instances -1 performance-schema-max-socket-instances -1
performance-schema-max-sql-text-length 1024 performance-schema-max-sql-text-length 1024
performance-schema-max-stage-classes 160 performance-schema-max-stage-classes 160
performance-schema-max-statement-classes 221 performance-schema-max-statement-classes 222
performance-schema-max-statement-stack 10 performance-schema-max-statement-stack 10
performance-schema-max-table-handles -1 performance-schema-max-table-handles -1
performance-schema-max-table-instances -1 performance-schema-max-table-instances -1

View File

@ -31,7 +31,7 @@ select count(*) from t1 where c < 500;
connection default; connection default;
show analyze for $thr2; show analyze for $thr2;
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 1000.00 59.38 50.00 Using where 1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 1000.00 50.00 50.00 Using where
Warnings: Warnings:
Note 1003 select count(*) from t1 where c < 500 Note 1003 select count(*) from t1 where c < 500
connection con1; connection con1;
@ -41,7 +41,7 @@ select max(c) from t1 where c < 10;
connection default; connection default;
show analyze for $thr2; show analyze for $thr2;
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 1000.00 10.16 10.00 Using where 1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 1000.00 10.00 10.00 Using where
Warnings: Warnings:
Note 1003 select max(c) from t1 where c < 10 Note 1003 select max(c) from t1 where c < 10
connection con1; connection con1;

View File

@ -36,12 +36,12 @@ SET debug_dbug='+d,show_explain_probe_join_exec_end';
select count(*) from t1 where c < 500; select count(*) from t1 where c < 500;
connection default; connection default;
show analyze format=JSON for $thr2; show analyze format=JSON for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
@ -50,7 +50,7 @@ ANALYZE
"r_loops": 1, "r_loops": 1,
"rows": 1000, "rows": 1000,
"r_rows": 1000, "r_rows": 1000,
"filtered": 59.375, "filtered": 50,
"r_filtered": 50, "r_filtered": 50,
"attached_condition": "t1.c < 500" "attached_condition": "t1.c < 500"
} }
@ -66,12 +66,12 @@ count(*)
select max(c) from t1 where c < 10; select max(c) from t1 where c < 10;
connection default; connection default;
show analyze format=json for $thr2; show analyze format=json for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
@ -80,7 +80,7 @@ ANALYZE
"r_loops": 1, "r_loops": 1,
"rows": 1000, "rows": 1000,
"r_rows": 1000, "r_rows": 1000,
"filtered": 10.15625, "filtered": 10,
"r_filtered": 10, "r_filtered": 10,
"attached_condition": "t1.c < 10" "attached_condition": "t1.c < 10"
} }
@ -97,8 +97,9 @@ max(c)
analyze select max(c) from t1 where a < 10; analyze select max(c) from t1 where a < 10;
connection default; connection default;
show analyze format=json for $thr2; show analyze format=json for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_loops": 1, "r_loops": 1,
@ -131,11 +132,12 @@ SET debug_dbug=@old_debug;
# UNION, select, first branch # UNION, select, first branch
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
SET debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
select max(a) from t0 A where a<=5 union select max(a+1) from t0 B where a>=9; select max(a) from t0 a where a<=5 union select max(a+1) from t0 b where a>=9;
connection default; connection default;
show analyze FORMAT= json for $thr2; show analyze FORMAT= json for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"union_result": { "union_result": {
"table_name": "<union1,2>", "table_name": "<union1,2>",
@ -147,11 +149,10 @@ ANALYZE
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "A", "table_name": "a",
"access_type": "ALL", "access_type": "ALL",
"r_loops": 1, "r_loops": 1,
"rows": 10, "rows": 10,
@ -171,7 +172,7 @@ ANALYZE
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "B", "table_name": "b",
"access_type": "ALL", "access_type": "ALL",
"r_loops": 0, "r_loops": 0,
"rows": 10, "rows": 10,
@ -189,7 +190,7 @@ ANALYZE
} }
} }
Warnings: Warnings:
Note 1003 select max(a) from t0 A where a<=5 union select max(a+1) from t0 B where a>=9 Note 1003 select max(a) from t0 a where a<=5 union select max(a+1) from t0 b where a>=9
connection con1; connection con1;
max(a) max(a)
5 5
@ -197,11 +198,12 @@ max(a)
# UNION, select, second branch # UNION, select, second branch
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
SET debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
select max(a) from t0 A where a<=5 union select max(a+1) from t0 B where a>=9; select max(a) from t0 a where a<=5 union select max(a+1) from t0 b where a>=9;
connection default; connection default;
show analyze format=JSON for $thr2; show analyze format=JSON for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"union_result": { "union_result": {
"table_name": "<union1,2>", "table_name": "<union1,2>",
@ -213,11 +215,10 @@ ANALYZE
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "A", "table_name": "a",
"access_type": "ALL", "access_type": "ALL",
"r_loops": 1, "r_loops": 1,
"rows": 10, "rows": 10,
@ -235,11 +236,10 @@ ANALYZE
"select_id": 2, "select_id": 2,
"operation": "UNION", "operation": "UNION",
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "B", "table_name": "b",
"access_type": "ALL", "access_type": "ALL",
"r_loops": 1, "r_loops": 1,
"rows": 10, "rows": 10,
@ -257,7 +257,7 @@ ANALYZE
} }
} }
Warnings: Warnings:
Note 1003 select max(a) from t0 A where a<=5 union select max(a+1) from t0 B where a>=9 Note 1003 select max(a) from t0 a where a<=5 union select max(a+1) from t0 b where a>=9
connection con1; connection con1;
max(a) max(a)
5 5
@ -265,11 +265,12 @@ max(a)
# UNION, analyze, first branch # UNION, analyze, first branch
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
SET debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
analyze select a from t0 A where a<=5 union select a+1 from t0 B where a>=9; analyze select a from t0 a where a<=5 union select a+1 from t0 b where a>=9;
connection default; connection default;
show analyze format=json for $thr2; show analyze format=json for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"union_result": { "union_result": {
"table_name": "<union1,2>", "table_name": "<union1,2>",
@ -285,7 +286,7 @@ ANALYZE
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "A", "table_name": "a",
"access_type": "ALL", "access_type": "ALL",
"r_loops": 1, "r_loops": 1,
"rows": 10, "rows": 10,
@ -307,7 +308,7 @@ ANALYZE
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "B", "table_name": "b",
"access_type": "ALL", "access_type": "ALL",
"r_loops": 0, "r_loops": 0,
"rows": 10, "rows": 10,
@ -325,19 +326,20 @@ ANALYZE
} }
} }
Warnings: Warnings:
Note 1003 analyze select a from t0 A where a<=5 union select a+1 from t0 B where a>=9 Note 1003 analyze select a from t0 a where a<=5 union select a+1 from t0 b where a>=9
connection con1; connection con1;
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
1 PRIMARY A ALL NULL NULL NULL NULL 10 10.00 100.00 60.00 Using where 1 PRIMARY a ALL NULL NULL NULL NULL 10 10.00 100.00 60.00 Using where
2 UNION B ALL NULL NULL NULL NULL 10 10.00 100.00 10.00 Using where 2 UNION b ALL NULL NULL NULL NULL 10 10.00 100.00 10.00 Using where
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL 7.00 NULL NULL NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL 7.00 NULL NULL
# UNION, analyze, second branch # UNION, analyze, second branch
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
analyze select a from t0 A where a<=5 union select a+1 from t0 B where a>=9; analyze select a from t0 a where a<=5 union select a+1 from t0 b where a>=9;
connection default; connection default;
show analyze FORMAT=JSON for $thr2; show analyze FORMAT=JSON for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"union_result": { "union_result": {
"table_name": "<union1,2>", "table_name": "<union1,2>",
@ -353,7 +355,7 @@ ANALYZE
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "A", "table_name": "a",
"access_type": "ALL", "access_type": "ALL",
"r_loops": 1, "r_loops": 1,
"rows": 10, "rows": 10,
@ -377,7 +379,7 @@ ANALYZE
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "B", "table_name": "b",
"access_type": "ALL", "access_type": "ALL",
"r_loops": 1, "r_loops": 1,
"rows": 10, "rows": 10,
@ -397,29 +399,29 @@ ANALYZE
} }
} }
Warnings: Warnings:
Note 1003 analyze select a from t0 A where a<=5 union select a+1 from t0 B where a>=9 Note 1003 analyze select a from t0 a where a<=5 union select a+1 from t0 b where a>=9
connection con1; connection con1;
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
1 PRIMARY A ALL NULL NULL NULL NULL 10 10.00 100.00 60.00 Using where 1 PRIMARY a ALL NULL NULL NULL NULL 10 10.00 100.00 60.00 Using where
2 UNION B ALL NULL NULL NULL NULL 10 10.00 100.00 10.00 Using where 2 UNION b ALL NULL NULL NULL NULL 10 10.00 100.00 10.00 Using where
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL 7.00 NULL NULL NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL 7.00 NULL NULL
SET debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# Uncorrelated subquery, select # Uncorrelated subquery, select
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
SET debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
select a, (select max(a) from t0 B where a>6) from t0 A where a<2; select a, (select max(a) from t0 b where a>6) from t0 a where a<2;
connection default; connection default;
show analyze format=json for $thr2; show analyze format=json for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "A", "table_name": "a",
"access_type": "ALL", "access_type": "ALL",
"r_loops": 1, "r_loops": 1,
"rows": 10, "rows": 10,
@ -435,11 +437,10 @@ ANALYZE
"query_block": { "query_block": {
"select_id": 2, "select_id": 2,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "B", "table_name": "b",
"access_type": "ALL", "access_type": "ALL",
"r_loops": 1, "r_loops": 1,
"rows": 10, "rows": 10,
@ -456,20 +457,21 @@ ANALYZE
} }
} }
Warnings: Warnings:
Note 1003 select a, (select max(a) from t0 B where a>6) from t0 A where a<2 Note 1003 select a, (select max(a) from t0 b where a>6) from t0 a where a<2
connection con1; connection con1;
a (select max(a) from t0 B where a>6) a (select max(a) from t0 b where a>6)
0 9 0 9
1 9 1 9
SET debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# Uncorrelated subquery, analyze # Uncorrelated subquery, analyze
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
SET debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
analyze select a, (select max(a) from t0 B where a>6) from t0 A where a<2; analyze select a, (select max(a) from t0 b where a>6) from t0 a where a<2;
connection default; connection default;
show analyze format=json for $thr2; show analyze format=json for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_loops": 1, "r_loops": 1,
@ -477,7 +479,7 @@ ANALYZE
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "A", "table_name": "a",
"access_type": "ALL", "access_type": "ALL",
"r_loops": 1, "r_loops": 1,
"rows": 10, "rows": 10,
@ -499,7 +501,7 @@ ANALYZE
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "B", "table_name": "b",
"access_type": "ALL", "access_type": "ALL",
"r_loops": 1, "r_loops": 1,
"rows": 10, "rows": 10,
@ -518,11 +520,11 @@ ANALYZE
} }
} }
Warnings: Warnings:
Note 1003 analyze select a, (select max(a) from t0 B where a>6) from t0 A where a<2 Note 1003 analyze select a, (select max(a) from t0 b where a>6) from t0 a where a<2
connection con1; connection con1;
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
1 PRIMARY A ALL NULL NULL NULL NULL 10 10.00 100.00 20.00 Using where 1 PRIMARY a ALL NULL NULL NULL NULL 10 10.00 100.00 20.00 Using where
2 SUBQUERY B ALL NULL NULL NULL NULL 10 10.00 100.00 30.00 Using where 2 SUBQUERY b ALL NULL NULL NULL NULL 10 10.00 100.00 30.00 Using where
SET debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# correlated subquery, select, before execution start # correlated subquery, select, before execution start
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
@ -530,8 +532,9 @@ SET debug_dbug='+d,show_explain_probe_join_exec_start';
select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<2; select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<2;
connection default; connection default;
show analyze format=json for $thr2; show analyze format=json for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"nested_loop": [ "nested_loop": [
@ -588,12 +591,12 @@ SET debug_dbug='+d,show_explain_probe_join_exec_end';
select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<2; select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<2;
connection default; connection default;
show analyze format=json for $thr2; show analyze format=json for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
@ -616,7 +619,6 @@ ANALYZE
"query_block": { "query_block": {
"select_id": 2, "select_id": 2,
"r_loops": 2, "r_loops": 2,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
@ -650,8 +652,9 @@ SET debug_dbug='+d,show_explain_probe_join_exec_end';
analyze select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<2; analyze select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<2;
connection default; connection default;
show analyze format=json for $thr2; show analyze format=json for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_loops": 1, "r_loops": 1,
@ -731,11 +734,11 @@ SET debug_dbug='+d,show_explain_probe_join_exec_start';
update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3 ; update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3 ;
connection default; connection default;
show analyze FORMAT=JSON for $thr2; show analyze FORMAT=JSON for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_total_time_ms": "REPLACED",
"table": { "table": {
"update": 1, "update": 1,
"table_name": "t2", "table_name": "t2",
@ -771,11 +774,11 @@ ANALYZE
Warnings: Warnings:
Note 1003 update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3 Note 1003 update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3
show analyze FORMAT=JSON for $thr2; show analyze FORMAT=JSON for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_total_time_ms": "REPLACED",
"table": { "table": {
"update": 1, "update": 1,
"table_name": "t2", "table_name": "t2",
@ -790,7 +793,6 @@ ANALYZE
"query_block": { "query_block": {
"select_id": 2, "select_id": 2,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
@ -824,11 +826,11 @@ SET debug_dbug='+d,show_explain_probe_join_exec_start';
delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3 ; delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3 ;
connection default; connection default;
show analyze FORMAT=JSON for $thr2; show analyze FORMAT=JSON for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_total_time_ms": "REPLACED",
"table": { "table": {
"delete": 1, "delete": 1,
"table_name": "t2", "table_name": "t2",
@ -864,11 +866,11 @@ ANALYZE
Warnings: Warnings:
Note 1003 delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3 Note 1003 delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3
show analyze FORMAT=JSON for $thr2; show analyze FORMAT=JSON for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_total_time_ms": "REPLACED",
"table": { "table": {
"delete": 1, "delete": 1,
"table_name": "t2", "table_name": "t2",
@ -883,7 +885,6 @@ ANALYZE
"query_block": { "query_block": {
"select_id": 2, "select_id": 2,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
@ -917,12 +918,12 @@ SET debug_dbug='+d,show_explain_probe_join_exec_start';
select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2; select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2;
connection default; connection default;
show analyze format=json for $thr2; show analyze format=json for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
@ -966,12 +967,12 @@ ANALYZE
Warnings: Warnings:
Note 1003 select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2 Note 1003 select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2
show analyze format=json for $thr2; show analyze format=json for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
@ -993,7 +994,6 @@ ANALYZE
"query_block": { "query_block": {
"select_id": 2, "select_id": 2,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
@ -1017,12 +1017,12 @@ ANALYZE
Warnings: Warnings:
Note 1003 select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2 Note 1003 select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2
show analyze format=json for $thr2; show analyze format=json for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
@ -1044,7 +1044,6 @@ ANALYZE
"query_block": { "query_block": {
"select_id": 2, "select_id": 2,
"r_loops": 2, "r_loops": 2,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
@ -1082,12 +1081,12 @@ set @show_explain_probe_select_id=1;
select * from t0 order by a; select * from t0 order by a;
connection default; connection default;
show analyze format=JSON for $thr2; show analyze format=JSON for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"nested_loop": [ "nested_loop": [
{ {
"read_sorted_file": { "read_sorted_file": {
@ -1138,12 +1137,12 @@ set @show_explain_probe_select_id=1;
select distinct a from t0; select distinct a from t0;
connection default; connection default;
show analyze format=json for $thr2; show analyze format=json for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"temporary_table": { "temporary_table": {
"nested_loop": [ "nested_loop": [
{ {
@ -1184,12 +1183,12 @@ set @show_explain_probe_select_id=1;
select distinct a from t0; select distinct a from t0;
connection default; connection default;
show analyze format=json for $thr2; show analyze format=json for $thr2;
ANALYZE SHOW ANALYZE
{ {
"r_query_time_in_progress_ms": "REPLACED",
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
"r_loops": 1, "r_loops": 1,
"r_total_time_ms": "REPLACED",
"temporary_table": { "temporary_table": {
"nested_loop": [ "nested_loop": [
{ {

View File

@ -125,7 +125,7 @@ SET debug_dbug=@old_debug;
--echo # UNION, select, first branch --echo # UNION, select, first branch
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
SET debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
send select max(a) from t0 A where a<=5 union select max(a+1) from t0 B where a>=9; send select max(a) from t0 a where a<=5 union select max(a+1) from t0 b where a>=9;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
--source include/analyze-format.inc --source include/analyze-format.inc
@ -137,7 +137,7 @@ reap;
--echo # UNION, select, second branch --echo # UNION, select, second branch
set @show_explain_probe_select_id=2; # <--- Second branch set @show_explain_probe_select_id=2; # <--- Second branch
SET debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
send select max(a) from t0 A where a<=5 union select max(a+1) from t0 B where a>=9; send select max(a) from t0 a where a<=5 union select max(a+1) from t0 b where a>=9;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
--source include/analyze-format.inc --source include/analyze-format.inc
@ -149,7 +149,7 @@ reap;
--echo # UNION, analyze, first branch --echo # UNION, analyze, first branch
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
SET debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
send analyze select a from t0 A where a<=5 union select a+1 from t0 B where a>=9; send analyze select a from t0 a where a<=5 union select a+1 from t0 b where a>=9;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
--source include/analyze-format.inc --source include/analyze-format.inc
@ -160,7 +160,7 @@ reap;
--echo # UNION, analyze, second branch --echo # UNION, analyze, second branch
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
send analyze select a from t0 A where a<=5 union select a+1 from t0 B where a>=9; send analyze select a from t0 a where a<=5 union select a+1 from t0 b where a>=9;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
--source include/analyze-format.inc --source include/analyze-format.inc
@ -173,7 +173,7 @@ SET debug_dbug=@old_debug;
--echo # Uncorrelated subquery, select --echo # Uncorrelated subquery, select
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
SET debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
send select a, (select max(a) from t0 B where a>6) from t0 A where a<2; send select a, (select max(a) from t0 b where a>6) from t0 a where a<2;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
--source include/analyze-format.inc --source include/analyze-format.inc
@ -186,7 +186,7 @@ SET debug_dbug=@old_debug;
--echo # Uncorrelated subquery, analyze --echo # Uncorrelated subquery, analyze
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
SET debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
send analyze select a, (select max(a) from t0 B where a>6) from t0 A where a<2; send analyze select a, (select max(a) from t0 b where a>6) from t0 a where a<2;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
--source include/analyze-format.inc --source include/analyze-format.inc
@ -365,4 +365,4 @@ drop table t0,t1;
--echo # End --echo # End
connection default; connection default;
disconnect con1; disconnect con1;
set debug_sync='RESET'; set debug_sync='RESET';

View File

@ -43,11 +43,6 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 range a a 5 NULL 999 Using where; Using index 1 SIMPLE t1 range a a 5 NULL 999 Using where; Using index
Warnings: Warnings:
Note 1003 select count(*) from t1 where a < 100000 Note 1003 select count(*) from t1 where a < 100000
explain for connection $thr2;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 range a a 5 NULL 999 Using where; Using index
Warnings:
Note 1003 select count(*) from t1 where a < 100000
connection con1; connection con1;
count(*) count(*)
1000 1000

View File

@ -109,7 +109,6 @@ send select count(*) from t1 where a < 100000;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
evalp show explain for $thr2; evalp show explain for $thr2;
evalp explain for connection $thr2;
connection con1; connection con1;
reap; reap;

View File

@ -43,7 +43,7 @@ SET debug_dbug='+d,show_explain_probe_join_exec_start';
select count(*) from t1 where a < 100000; select count(*) from t1 where a < 100000;
connection default; connection default;
show explain FORMAT=JSON for $thr2; show explain FORMAT=JSON for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -73,7 +73,7 @@ count(*)
select max(c) from t1 where a < 10; select max(c) from t1 where a < 10;
connection default; connection default;
explain FORMAT=JSON for connection $thr2; explain FORMAT=JSON for connection $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -102,7 +102,7 @@ max(c)
select max(c) from t1 where a < 10; select max(c) from t1 where a < 10;
connection default; connection default;
explain format=JSON for connection $thr2; explain format=JSON for connection $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -134,7 +134,7 @@ set optimizer_switch='index_condition_pushdown=on,mrr=on,mrr_sort_keys=on';
explain select max(c) from t1 where a < 10; explain select max(c) from t1 where a < 10;
connection default; connection default;
show explain format=json for $thr2; show explain format=json for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -165,7 +165,7 @@ id select_type table type possible_keys key key_len ref rows Extra
explain select max(c) from t1 where a < 10; explain select max(c) from t1 where a < 10;
connection default; connection default;
explain format=JSON for connection $thr2; explain format=JSON for connection $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -200,7 +200,7 @@ SET debug_dbug='+d,show_explain_probe_join_exec_start';
explain select a from t0 A union select a+1 from t0 B; explain select a from t0 A union select a+1 from t0 B;
connection default; connection default;
show explain format = JSON for $thr2; show explain format = JSON for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"union_result": { "union_result": {
@ -256,7 +256,7 @@ SET debug_dbug='+d,show_explain_probe_join_exec_start';
explain select a from t0 A union select a+1 from t0 B; explain select a from t0 A union select a+1 from t0 B;
connection default; connection default;
show explain format=JSON for $thr2; show explain format=JSON for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"union_result": { "union_result": {
@ -374,7 +374,7 @@ SET debug_dbug='+d,show_explain_probe_join_exec_start';
select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1; select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1;
connection default; connection default;
show explain format=JSON for $thr2; show explain format=JSON for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -423,7 +423,7 @@ SET debug_dbug='+d,show_explain_probe_join_exec_start';
select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1; select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1;
connection default; connection default;
show explain format=JSON for $thr2; show explain format=JSON for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -472,7 +472,7 @@ SET debug_dbug='+d,show_explain_probe_join_exec_end';
select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1; select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1;
connection default; connection default;
show explain format=JSON for $thr2; show explain format=JSON for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -537,7 +537,7 @@ SET debug_dbug='+d,show_explain_probe_join_exec_start';
update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3 ; update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3 ;
connection default; connection default;
show explain format=JSON for $thr2; show explain format=JSON for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -571,7 +571,7 @@ EXPLAIN
Warnings: Warnings:
Note 1003 update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3 Note 1003 update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3
show explain format=JSON for $thr2; show explain format=JSON for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -613,7 +613,7 @@ SET debug_dbug='+d,show_explain_probe_join_exec_start';
update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3 ; update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3 ;
connection default; connection default;
explain format=JSON for connection $thr2; explain format=JSON for connection $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -647,7 +647,7 @@ EXPLAIN
Warnings: Warnings:
Note 1003 update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3 Note 1003 update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3
explain format=JSON for connection $thr2; explain format=JSON for connection $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -692,7 +692,7 @@ SET debug_dbug='+d,show_explain_probe_join_exec_start';
delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3 ; delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3 ;
connection default; connection default;
show explain format=JSON for $thr2; show explain format=JSON for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -726,7 +726,7 @@ EXPLAIN
Warnings: Warnings:
Note 1003 delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3 Note 1003 delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3
show explain format=JSON for $thr2; show explain format=JSON for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -771,7 +771,7 @@ SET debug_dbug='+d,show_explain_probe_join_exec_start';
delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3 ; delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3 ;
connection default; connection default;
explain format=JSON for connection $thr2; explain format=JSON for connection $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -805,7 +805,7 @@ EXPLAIN
Warnings: Warnings:
Note 1003 delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3 Note 1003 delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3
explain format=JSON for connection $thr2; explain format=JSON for connection $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -850,7 +850,7 @@ SET debug_dbug='+d,show_explain_probe_join_exec_start';
select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2; select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2;
connection default; connection default;
show explain format=json for $thr2; show explain format=json for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -889,7 +889,7 @@ EXPLAIN
Warnings: Warnings:
Note 1003 select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2 Note 1003 select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2
show explain format=json for $thr2; show explain format=json for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -928,7 +928,7 @@ EXPLAIN
Warnings: Warnings:
Note 1003 select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2 Note 1003 select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2
show explain format=json for $thr2; show explain format=json for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -982,7 +982,7 @@ SET debug_dbug='+d,show_explain_probe_join_exec_start';
select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2; select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2;
connection default; connection default;
explain format=JSON for connection $thr2; explain format=JSON for connection $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -1021,7 +1021,7 @@ EXPLAIN
Warnings: Warnings:
Note 1003 select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2 Note 1003 select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2
explain format=JSON for connection $thr2; explain format=JSON for connection $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -1060,7 +1060,7 @@ EXPLAIN
Warnings: Warnings:
Note 1003 select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2 Note 1003 select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2
explain format=JSON for connection $thr2; explain format=JSON for connection $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -1116,7 +1116,7 @@ set @show_explain_probe_select_id=1;
select * from t0 order by a; select * from t0 order by a;
connection default; connection default;
show explain format=json for $thr2; show explain format=json for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -1165,7 +1165,7 @@ set @show_explain_probe_select_id=1;
select distinct a from t0; select distinct a from t0;
connection default; connection default;
show explain format=json for $thr2; show explain format=json for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -1211,7 +1211,7 @@ set @show_explain_probe_select_id=1;
select distinct a from t0; select distinct a from t0;
connection default; connection default;
show explain format=json for $thr2; show explain format=json for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,
@ -1260,7 +1260,7 @@ select * from t0 where length('
connection default; connection default;
set names utf8; set names utf8;
show explain format=JSON for $thr2; show explain format=JSON for $thr2;
EXPLAIN SHOW EXPLAIN
{ {
"query_block": { "query_block": {
"select_id": 1, "select_id": 1,

View File

@ -4,7 +4,7 @@ CREATE TABLE t1 (a INT);
connect con1,localhost,root,,test; connect con1,localhost,root,,test;
INSERT INTO t1 VALUES (1),(2),(3),(4); INSERT INTO t1 VALUES (1),(2),(3),(4);
SHOW EXPLAIN FOR $con1; SHOW EXPLAIN FOR $con1;
ERROR HY000: Target is not running an EXPLAINable command ERROR HY000: Target is not executing an operation with a query plan
connection con1; connection con1;
INSERT INTO t1 VALUES (5),(6),(7),(8); INSERT INTO t1 VALUES (5),(6),(7),(8);
DROP TABLE t1; DROP TABLE t1;

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 1 performance_schema_max_statement_stack 1
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -255,7 +255,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -57,7 +57,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 0
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 0 performance_schema_max_socket_instances 0
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 0 performance_schema_max_stage_classes 0
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 0 performance_schema_max_table_handles 0
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 0 performance_schema_max_table_instances 0

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -135,7 +135,7 @@ performance_schema_max_socket_classes 10
performance_schema_max_socket_instances 1000 performance_schema_max_socket_instances 1000
performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024
performance_schema_max_stage_classes 160 performance_schema_max_stage_classes 160
performance_schema_max_statement_classes 221 performance_schema_max_statement_classes 222
performance_schema_max_statement_stack 2 performance_schema_max_statement_stack 2
performance_schema_max_table_handles 1000 performance_schema_max_table_handles 1000
performance_schema_max_table_instances 500 performance_schema_max_table_instances 500

View File

@ -33,7 +33,7 @@ void Filesort_tracker::print_json_members(Json_writer *writer)
else else
writer->add_member("r_loops").add_ll(get_r_loops()); writer->add_member("r_loops").add_ll(get_r_loops());
if (get_r_loops() && time_tracker.timed) if (time_tracker.has_timed_statistics())
{ {
writer->add_member("r_total_time_ms"). writer->add_member("r_total_time_ms").
add_double(time_tracker.get_time_ms()); add_double(time_tracker.get_time_ms());

View File

@ -93,6 +93,8 @@ public:
return 1000.0 * static_cast<double>(cycles) / return 1000.0 * static_cast<double>(cycles) /
static_cast<double>(sys_timer_info.cycles.frequency); static_cast<double>(sys_timer_info.cycles.frequency);
} }
bool has_timed_statistics() const { return cycles > 0; }
}; };

View File

@ -216,10 +216,14 @@ int Explain_query::print_explain(select_result_sink *output,
int Explain_query::print_explain_json(select_result_sink *output, int Explain_query::print_explain_json(select_result_sink *output,
bool is_analyze) bool is_analyze,
ulonglong query_time_in_progress_ms)
{ {
Json_writer writer; Json_writer writer;
writer.start_object(); writer.start_object();
if (is_analyze && query_time_in_progress_ms > 0)
writer.add_member("r_query_time_in_progress_ms").
add_ull(query_time_in_progress_ms);
if (upd_del_plan) if (upd_del_plan)
upd_del_plan->print_explain_json(this, &writer, is_analyze); upd_del_plan->print_explain_json(this, &writer, is_analyze);
@ -935,7 +939,11 @@ void Explain_select::print_explain_json(Explain_query *query,
if (is_analyze && time_tracker.get_loops()) if (is_analyze && time_tracker.get_loops())
{ {
writer->add_member("r_loops").add_ll(time_tracker.get_loops()); writer->add_member("r_loops").add_ll(time_tracker.get_loops());
writer->add_member("r_total_time_ms").add_double(time_tracker.get_time_ms()); if (time_tracker.has_timed_statistics())
{
writer->add_member("r_total_time_ms").
add_double(time_tracker.get_time_ms());
}
} }
if (exec_const_cond) if (exec_const_cond)
@ -2359,7 +2367,7 @@ void Explain_update::print_explain_json(Explain_query *query,
writer->add_member("select_id").add_ll(1); writer->add_member("select_id").add_ll(1);
/* This is the total time it took to do the UPDATE/DELETE */ /* This is the total time it took to do the UPDATE/DELETE */
if (is_analyze && command_tracker.get_loops()) if (is_analyze && command_tracker.has_timed_statistics())
{ {
writer->add_member("r_total_time_ms"). writer->add_member("r_total_time_ms").
add_double(command_tracker.get_time_ms()); add_double(command_tracker.get_time_ms());
@ -2506,7 +2514,7 @@ void Explain_update::print_explain_json(Explain_query *query,
writer->add_member("r_filtered").add_double(r_filtered); writer->add_member("r_filtered").add_double(r_filtered);
} }
if (table_tracker.get_loops()) if (table_tracker.has_timed_statistics())
{ {
writer->add_member("r_total_time_ms"). writer->add_member("r_total_time_ms").
add_double(table_tracker.get_time_ms()); add_double(table_tracker.get_time_ms());

View File

@ -478,7 +478,8 @@ public:
/* Return tabular EXPLAIN output as a text string */ /* Return tabular EXPLAIN output as a text string */
bool print_explain_str(THD *thd, String *out_str, bool is_analyze); bool print_explain_str(THD *thd, String *out_str, bool is_analyze);
int print_explain_json(select_result_sink *output, bool is_analyze); int print_explain_json(select_result_sink *output, bool is_analyze,
ulonglong query_time_in_progress_ms= 0);
/* If true, at least part of EXPLAIN can be printed */ /* If true, at least part of EXPLAIN can be printed */
bool have_query_plan() { return insert_plan || upd_del_plan|| get_node(1) != NULL; } bool have_query_plan() { return insert_plan || upd_del_plan|| get_node(1) != NULL; }

View File

@ -5827,9 +5827,20 @@ int LEX::print_explain(select_result_sink *output, uint8 explain_flags,
if (explain && explain->have_query_plan()) if (explain && explain->have_query_plan())
{ {
if (is_json_format) if (is_json_format)
res= explain->print_explain_json(output, is_analyze); {
auto now= microsecond_interval_timer();
auto start_time= thd->start_utime;
auto query_time_in_progress_ms= 0ULL;
if (likely(now > start_time))
query_time_in_progress_ms=
(now - start_time) / (HRTIME_RESOLUTION / 1000);
res= explain->print_explain_json(output, is_analyze,
query_time_in_progress_ms);
}
else else
{
res= explain->print_explain(output, explain_flags, is_analyze); res= explain->print_explain(output, explain_flags, is_analyze);
}
*printed_anything= true; *printed_anything= true;
} }
else else

View File

@ -3795,14 +3795,9 @@ public:
bool save_prep_leaf_tables(); bool save_prep_leaf_tables();
int print_explain(select_result_sink *output, uint8 explain_flags, int print_explain(select_result_sink *output, uint8 explain_flags,
<<<<<<< HEAD
bool is_analyze, bool *printed_anything);
bool restore_set_statement_var();
=======
bool is_analyze, bool is_json_format, bool is_analyze, bool is_json_format,
bool *printed_anything); bool *printed_anything);
void restore_set_statement_var(); bool restore_set_statement_var();
>>>>>>> 54281b6e74e... MDEV-10000 Add EXPLAIN [FORMAT=JSON] FOR CONNECTION syntax support
void init_last_field(Column_definition *field, const LEX_CSTRING *name); void init_last_field(Column_definition *field, const LEX_CSTRING *name);
bool last_field_generated_always_as_row_start_or_end(Lex_ident *p, bool last_field_generated_always_as_row_start_or_end(Lex_ident *p,

View File

@ -9672,7 +9672,7 @@ ST_FIELD_INFO show_explain_tabular_fields_info[]=
ST_FIELD_INFO show_explain_json_fields_info[]= ST_FIELD_INFO show_explain_json_fields_info[]=
{ {
Column("EXPLAIN", Longtext(MAX_FIELD_VARCHARLENGTH), NOT_NULL, "EXPLAIN"), Column("EXPLAIN", Longtext(MAX_FIELD_VARCHARLENGTH), NOT_NULL, "SHOW EXPLAIN"),
CEnd() CEnd()
}; };
@ -9701,7 +9701,7 @@ ST_FIELD_INFO show_analyze_tabular_fields_info[]=
ST_FIELD_INFO show_analyze_json_fields_info[]= { ST_FIELD_INFO show_analyze_json_fields_info[]= {
Column("EXPLAIN", Longtext(MAX_FIELD_VARCHARLENGTH), NOT_NULL, "ANALYZE"), Column("ANALYZE", Longtext(MAX_FIELD_VARCHARLENGTH), NOT_NULL, "SHOW ANALYZE"),
CEnd()}; CEnd()};

View File

@ -14134,6 +14134,16 @@ explain_for_connection:
*/ */
describe_command opt_format_json FOR_SYM CONNECTION_SYM expr describe_command opt_format_json FOR_SYM CONNECTION_SYM expr
{ {
LEX *lex=Lex;
lex->wild=0;
lex->ident= null_clex_str;
if (Lex->main_select_push())
MYSQL_YYABORT;
mysql_init_select(lex);
lex->current_select->parsing_place= SELECT_LIST;
lex->create_info.init();
Select->parsing_place= NO_MATTER;
Lex->pop_select(); //main select
Lex->sql_command= SQLCOM_SHOW_EXPLAIN; Lex->sql_command= SQLCOM_SHOW_EXPLAIN;
if (unlikely(prepare_schema_table(thd, Lex, 0, if (unlikely(prepare_schema_table(thd, Lex, 0,
Lex->explain_json ? SCH_EXPLAIN_JSON : SCH_EXPLAIN_TABULAR))) Lex->explain_json ? SCH_EXPLAIN_JSON : SCH_EXPLAIN_TABULAR)))