mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
EXPLAIN JSON: Print out the "expensive constant condition" attached to joins.
This commit is contained in:
@ -551,6 +551,7 @@ EXPLAIN
|
||||
{
|
||||
"query_block": {
|
||||
"select_id": 1,
|
||||
"const_condition": "1",
|
||||
"table": {
|
||||
"table_name": "t1",
|
||||
"access_type": "ALL",
|
||||
@ -778,3 +779,54 @@ EXPLAIN
|
||||
}
|
||||
}
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# Join's constant expression
|
||||
#
|
||||
create table t0(a int);
|
||||
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
create table t1(a int, b int);
|
||||
insert into t1 select tbl1.a+10*tbl2.a, 1234 from t0 tbl1, t0 tbl2;
|
||||
explain format=json
|
||||
select * from t0
|
||||
where
|
||||
20000 > all (select max(tbl1.a + tbl2.a)
|
||||
from t1 tbl1, t1 tbl2 where tbl1.b=tbl2.b);
|
||||
EXPLAIN
|
||||
{
|
||||
"query_block": {
|
||||
"select_id": 1,
|
||||
"const_condition": "<not>(<in_optimizer>(20000,(<max>(subquery#2) >= 20000)))",
|
||||
"table": {
|
||||
"table_name": "t0",
|
||||
"access_type": "ALL",
|
||||
"rows": 10,
|
||||
"filtered": 100
|
||||
},
|
||||
"subqueries": [
|
||||
{
|
||||
"query_block": {
|
||||
"select_id": 2,
|
||||
"table": {
|
||||
"table_name": "tbl1",
|
||||
"access_type": "ALL",
|
||||
"rows": 100,
|
||||
"filtered": 100
|
||||
},
|
||||
"block-nl-join": {
|
||||
"table": {
|
||||
"table_name": "tbl2",
|
||||
"access_type": "ALL",
|
||||
"rows": 100,
|
||||
"filtered": 100
|
||||
},
|
||||
"buffer_type": "flat",
|
||||
"join_type": "BNL",
|
||||
"attached_condition": "(tbl2.b = tbl1.b)"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
drop table t1;
|
||||
drop table t0;
|
||||
|
Reference in New Issue
Block a user