mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-18608: Defaults for 10.4: histogram size should be set
Change the defaults: -histogram_size=0 +histogram_size=254 -histogram_type=SINGLE_PREC_HB +histogram_type=DOUBLE_PREC_HB Adjust the testcases: - Some have ignorable changes in EXPLAIN outputs and more counter increments due to EITS table reads. - Testcases that meaningfully depend on the old defaults are changed to use the old values.
This commit is contained in:
@ -15734,7 +15734,7 @@ explain extended select t2.a,t2.b,t2.c,t.c as t_c,t.max,t.min
|
|||||||
from t2, t3, (select c, max(b) max, min(b) min from t4 group by c) t
|
from t2, t3, (select c, max(b) max, min(b) min from t4 group by c) t
|
||||||
where t2.b < 40 and t2.a=t3.a and t3.c=t.c;
|
where t2.b < 40 and t2.a=t3.a and t3.c=t.c;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 90 33.33 Using where
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 90 63.28 Using where
|
||||||
1 PRIMARY t3 ref idx_a idx_a 5 test.t2.a 1 100.00 Using where
|
1 PRIMARY t3 ref idx_a idx_a 5 test.t2.a 1 100.00 Using where
|
||||||
1 PRIMARY <derived2> ref key0 key0 128 test.t3.c 10 100.00
|
1 PRIMARY <derived2> ref key0 key0 128 test.t3.c 10 100.00
|
||||||
2 DERIVED t4 ALL idx_c NULL NULL NULL 160 100.00 Using temporary; Using filesort
|
2 DERIVED t4 ALL idx_c NULL NULL NULL 160 100.00 Using temporary; Using filesort
|
||||||
@ -15751,7 +15751,7 @@ EXPLAIN
|
|||||||
"table_name": "t2",
|
"table_name": "t2",
|
||||||
"access_type": "ALL",
|
"access_type": "ALL",
|
||||||
"rows": 90,
|
"rows": 90,
|
||||||
"filtered": 33.333,
|
"filtered": 63.281,
|
||||||
"attached_condition": "t2.b < 40 and t2.a is not null"
|
"attached_condition": "t2.b < 40 and t2.a is not null"
|
||||||
},
|
},
|
||||||
"table": {
|
"table": {
|
||||||
@ -16230,7 +16230,7 @@ explain extended select *
|
|||||||
from t2, t3, (select c, b, sum(b) over (partition by c) from t4 ) t
|
from t2, t3, (select c, b, sum(b) over (partition by c) from t4 ) t
|
||||||
where t2.b < 40 and t2.a=t3.a and t3.c=t.c;
|
where t2.b < 40 and t2.a=t3.a and t3.c=t.c;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 90 33.33 Using where
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 90 63.28 Using where
|
||||||
1 PRIMARY t3 ref idx_a idx_a 5 test.t2.a 1 100.00 Using where
|
1 PRIMARY t3 ref idx_a idx_a 5 test.t2.a 1 100.00 Using where
|
||||||
1 PRIMARY <derived2> ref key0 key0 128 test.t3.c 10 100.00
|
1 PRIMARY <derived2> ref key0 key0 128 test.t3.c 10 100.00
|
||||||
2 DERIVED t4 ALL idx_c NULL NULL NULL 160 100.00 Using temporary
|
2 DERIVED t4 ALL idx_c NULL NULL NULL 160 100.00 Using temporary
|
||||||
@ -16247,7 +16247,7 @@ EXPLAIN
|
|||||||
"table_name": "t2",
|
"table_name": "t2",
|
||||||
"access_type": "ALL",
|
"access_type": "ALL",
|
||||||
"rows": 90,
|
"rows": 90,
|
||||||
"filtered": 33.333,
|
"filtered": 63.281,
|
||||||
"attached_condition": "t2.b < 40 and t2.a is not null"
|
"attached_condition": "t2.b < 40 and t2.a is not null"
|
||||||
},
|
},
|
||||||
"table": {
|
"table": {
|
||||||
|
@ -1716,7 +1716,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
||||||
explain extended select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
|
explain extended select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 index NULL idx_t1_1 163 NULL 128 0.39 Using where; Using index
|
1 SIMPLE t1 index NULL idx_t1_1 163 NULL 128 0.38 Using where; Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select distinct `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where `test`.`t1`.`b` = 'a' and `test`.`t1`.`c` = 'i121' and `test`.`t1`.`a2` >= 'b'
|
Note 1003 select distinct `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where `test`.`t1`.`b` = 'a' and `test`.`t1`.`c` = 'i121' and `test`.`t1`.`a2` >= 'b'
|
||||||
explain select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
explain select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
||||||
@ -1733,7 +1733,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by
|
1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by
|
||||||
explain extended select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
|
explain extended select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 0.28 Using where; Using index
|
1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 0.30 Using where; Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select distinct `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` where `test`.`t2`.`b` = 'a' and `test`.`t2`.`c` = 'i121' and `test`.`t2`.`a2` >= 'b'
|
Note 1003 select distinct `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` where `test`.`t2`.`b` = 'a' and `test`.`t2`.`c` = 'i121' and `test`.`t2`.`a2` >= 'b'
|
||||||
explain select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
explain select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
||||||
@ -2078,19 +2078,19 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
explain extended select a1,a2,min(b),max(b) from t1
|
explain extended select a1,a2,min(b),max(b) from t1
|
||||||
where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (c > 'a111') group by a1,a2;
|
where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (c > 'a111') group by a1,a2;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 77 100.00 Using where; Using index
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 77 99.22 Using where; Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,min(`test`.`t1`.`b`) AS `min(b)`,max(`test`.`t1`.`b`) AS `max(b)` from `test`.`t1` where (`test`.`t1`.`a1` = 'b' or `test`.`t1`.`a1` = 'd' or `test`.`t1`.`a1` = 'a' or `test`.`t1`.`a1` = 'c') and `test`.`t1`.`a2` > 'a' and `test`.`t1`.`c` > 'a111' group by `test`.`t1`.`a1`,`test`.`t1`.`a2`
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,min(`test`.`t1`.`b`) AS `min(b)`,max(`test`.`t1`.`b`) AS `max(b)` from `test`.`t1` where (`test`.`t1`.`a1` = 'b' or `test`.`t1`.`a1` = 'd' or `test`.`t1`.`a1` = 'a' or `test`.`t1`.`a1` = 'c') and `test`.`t1`.`a2` > 'a' and `test`.`t1`.`c` > 'a111' group by `test`.`t1`.`a1`,`test`.`t1`.`a2`
|
||||||
explain extended select a1,a2,b,min(c),max(c) from t1
|
explain extended select a1,a2,b,min(c),max(c) from t1
|
||||||
where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (d > 'xy2') group by a1,a2,b;
|
where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (d > 'xy2') group by a1,a2,b;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 ALL idx_t1_0,idx_t1_1,idx_t1_2 NULL NULL NULL 128 40.10 Using where; Using temporary; Using filesort
|
1 SIMPLE t1 ALL idx_t1_0,idx_t1_1,idx_t1_2 NULL NULL NULL 128 45.12 Using where; Using temporary; Using filesort
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`a1` = 'b' or `test`.`t1`.`a1` = 'd' or `test`.`t1`.`a1` = 'a' or `test`.`t1`.`a1` = 'c') and `test`.`t1`.`a2` > 'a' and `test`.`t1`.`d` > 'xy2' group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`a1` = 'b' or `test`.`t1`.`a1` = 'd' or `test`.`t1`.`a1` = 'a' or `test`.`t1`.`a1` = 'c') and `test`.`t1`.`a2` > 'a' and `test`.`t1`.`d` > 'xy2' group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`
|
||||||
explain extended select a1,a2,b,c from t1
|
explain extended select a1,a2,b,c from t1
|
||||||
where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (d > 'xy2') group by a1,a2,b,c;
|
where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (d > 'xy2') group by a1,a2,b,c;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 ALL idx_t1_0,idx_t1_1,idx_t1_2 NULL NULL NULL 128 40.10 Using where; Using temporary; Using filesort
|
1 SIMPLE t1 ALL idx_t1_0,idx_t1_1,idx_t1_2 NULL NULL NULL 128 45.12 Using where; Using temporary; Using filesort
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where (`test`.`t1`.`a1` = 'b' or `test`.`t1`.`a1` = 'd' or `test`.`t1`.`a1` = 'a' or `test`.`t1`.`a1` = 'c') and `test`.`t1`.`a2` > 'a' and `test`.`t1`.`d` > 'xy2' group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`,`test`.`t1`.`c`
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where (`test`.`t1`.`a1` = 'b' or `test`.`t1`.`a1` = 'd' or `test`.`t1`.`a1` = 'a' or `test`.`t1`.`a1` = 'c') and `test`.`t1`.`a2` > 'a' and `test`.`t1`.`d` > 'xy2' group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`,`test`.`t1`.`c`
|
||||||
explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') or (b < 'b') group by a1;
|
explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') or (b < 'b') group by a1;
|
||||||
@ -2098,7 +2098,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
||||||
explain extended select a1,a2,b from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (c > 'a111') group by a1,a2,b;
|
explain extended select a1,a2,b from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (c > 'a111') group by a1,a2,b;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 77 100.00 Using where; Using index
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 77 99.22 Using where; Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b` from `test`.`t1` where (`test`.`t1`.`a1` = 'b' or `test`.`t1`.`a1` = 'd' or `test`.`t1`.`a1` = 'a' or `test`.`t1`.`a1` = 'c') and `test`.`t1`.`a2` > 'a' and `test`.`t1`.`c` > 'a111' group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b` from `test`.`t1` where (`test`.`t1`.`a1` = 'b' or `test`.`t1`.`a1` = 'd' or `test`.`t1`.`a1` = 'a' or `test`.`t1`.`a1` = 'c') and `test`.`t1`.`a2` > 'a' and `test`.`t1`.`c` > 'a111' group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`
|
||||||
explain select a1,a2,min(b),c from t2 where (a2 = 'a') and (c = 'a111') group by a1;
|
explain select a1,a2,min(b),c from t2 where (a2 = 'a') and (c = 'a111') group by a1;
|
||||||
|
@ -1280,7 +1280,7 @@ pk v pk v
|
|||||||
SHOW STATUS LIKE 'Handler_read_%';
|
SHOW STATUS LIKE 'Handler_read_%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 11
|
Handler_read_key 14
|
||||||
Handler_read_last 0
|
Handler_read_last 0
|
||||||
Handler_read_next 0
|
Handler_read_next 0
|
||||||
Handler_read_prev 0
|
Handler_read_prev 0
|
||||||
|
@ -1803,7 +1803,7 @@ sum(t3.b)
|
|||||||
show status like "handler_read%";
|
show status like "handler_read%";
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 10
|
Handler_read_key 13
|
||||||
Handler_read_last 0
|
Handler_read_last 0
|
||||||
Handler_read_next 5
|
Handler_read_next 5
|
||||||
Handler_read_prev 0
|
Handler_read_prev 0
|
||||||
@ -1818,7 +1818,7 @@ sum(t3.b)
|
|||||||
show status like "handler_read%";
|
show status like "handler_read%";
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 6
|
Handler_read_key 7
|
||||||
Handler_read_last 0
|
Handler_read_last 0
|
||||||
Handler_read_next 5
|
Handler_read_next 5
|
||||||
Handler_read_prev 0
|
Handler_read_prev 0
|
||||||
@ -2552,7 +2552,7 @@ test.t3 analyze status OK
|
|||||||
explain extended select * from t1 left join t3 on t1.a=t3.b and t3.a<5;
|
explain extended select * from t1 left join t3 on t1.a=t3.b and t3.a<5;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 100.00
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 100.00
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 1000 0.99 Using where
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 1000 1.96 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t1` left join `test`.`t3` on(`test`.`t3`.`b` = `test`.`t1`.`a` and `test`.`t3`.`a` < 5) where 1
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t1` left join `test`.`t3` on(`test`.`t3`.`b` = `test`.`t1`.`a` and `test`.`t3`.`a` < 5) where 1
|
||||||
# t3.filtered must less than 100%, too:
|
# t3.filtered must less than 100%, too:
|
||||||
@ -2560,7 +2560,7 @@ explain extended select * from t1 left join (t3 join t2) on t1.a=t3.b and t3.a<5
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 100.00
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 100.00
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 100.00
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 1000 0.99 Using where
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 1000 1.96 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t2`.`a` AS `a` from `test`.`t1` left join (`test`.`t3` join `test`.`t2`) on(`test`.`t3`.`b` = `test`.`t1`.`a` and `test`.`t3`.`a` < 5) where 1
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t2`.`a` AS `a` from `test`.`t1` left join (`test`.`t3` join `test`.`t2`) on(`test`.`t3`.`b` = `test`.`t1`.`a` and `test`.`t3`.`a` < 5) where 1
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
|
@ -1814,7 +1814,7 @@ sum(t3.b)
|
|||||||
show status like "handler_read%";
|
show status like "handler_read%";
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 10
|
Handler_read_key 13
|
||||||
Handler_read_last 0
|
Handler_read_last 0
|
||||||
Handler_read_next 5
|
Handler_read_next 5
|
||||||
Handler_read_prev 0
|
Handler_read_prev 0
|
||||||
@ -1829,7 +1829,7 @@ sum(t3.b)
|
|||||||
show status like "handler_read%";
|
show status like "handler_read%";
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 6
|
Handler_read_key 7
|
||||||
Handler_read_last 0
|
Handler_read_last 0
|
||||||
Handler_read_next 5
|
Handler_read_next 5
|
||||||
Handler_read_prev 0
|
Handler_read_prev 0
|
||||||
@ -2563,7 +2563,7 @@ test.t3 analyze status OK
|
|||||||
explain extended select * from t1 left join t3 on t1.a=t3.b and t3.a<5;
|
explain extended select * from t1 left join t3 on t1.a=t3.b and t3.a<5;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 100.00
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 100.00
|
||||||
1 SIMPLE t3 hash_ALL NULL #hash#$hj 5 test.t1.a 1000 0.99 Using where; Using join buffer (flat, BNLH join)
|
1 SIMPLE t3 hash_ALL NULL #hash#$hj 5 test.t1.a 1000 1.96 Using where; Using join buffer (flat, BNLH join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t1` left join `test`.`t3` on(`test`.`t3`.`b` = `test`.`t1`.`a` and `test`.`t3`.`a` < 5 and `test`.`t1`.`a` is not null) where 1
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t1` left join `test`.`t3` on(`test`.`t3`.`b` = `test`.`t1`.`a` and `test`.`t3`.`a` < 5 and `test`.`t1`.`a` is not null) where 1
|
||||||
# t3.filtered must less than 100%, too:
|
# t3.filtered must less than 100%, too:
|
||||||
@ -2571,7 +2571,7 @@ explain extended select * from t1 left join (t3 join t2) on t1.a=t3.b and t3.a<5
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 100.00
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 100.00
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 1000 0.99 Using where
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 1000 1.96 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t2`.`a` AS `a` from `test`.`t1` left join (`test`.`t3` join `test`.`t2`) on(`test`.`t3`.`b` = `test`.`t1`.`a` and `test`.`t3`.`a` < 5 and `test`.`t1`.`a` is not null) where 1
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t2`.`a` AS `a` from `test`.`t1` left join (`test`.`t3` join `test`.`t2`) on(`test`.`t3`.`b` = `test`.`t1`.`a` and `test`.`t3`.`a` < 5 and `test`.`t1`.`a` is not null) where 1
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
|
@ -1462,8 +1462,8 @@ gtid-ignore-duplicates FALSE
|
|||||||
gtid-pos-auto-engines
|
gtid-pos-auto-engines
|
||||||
gtid-strict-mode FALSE
|
gtid-strict-mode FALSE
|
||||||
help TRUE
|
help TRUE
|
||||||
histogram-size 0
|
histogram-size 254
|
||||||
histogram-type SINGLE_PREC_HB
|
histogram-type DOUBLE_PREC_HB
|
||||||
host-cache-size 279
|
host-cache-size 279
|
||||||
idle-readonly-transaction-timeout 0
|
idle-readonly-transaction-timeout 0
|
||||||
idle-transaction-timeout 0
|
idle-transaction-timeout 0
|
||||||
|
@ -1324,11 +1324,11 @@ EXPLAIN SELECT MIN(d) FROM t1 where b=2 and c=3 group by a {
|
|||||||
"selectivity_for_columns": [
|
"selectivity_for_columns": [
|
||||||
{
|
{
|
||||||
"column_name": "b",
|
"column_name": "b",
|
||||||
"selectivity_from_histograms": 0.1667
|
"selectivity_from_histograms": 0.2891
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"column_name": "c",
|
"column_name": "c",
|
||||||
"selectivity_from_histograms": 0.25
|
"selectivity_from_histograms": 0.2891
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -1348,8 +1348,8 @@ EXPLAIN SELECT MIN(d) FROM t1 where b=2 and c=3 group by a {
|
|||||||
"considered_access_paths": [
|
"considered_access_paths": [
|
||||||
{
|
{
|
||||||
"access_type": "scan",
|
"access_type": "scan",
|
||||||
"resulting_rows": 0.2917,
|
"resulting_rows": 0.5849,
|
||||||
"cost": 3.3707,
|
"cost": 3.3121,
|
||||||
"chosen": true,
|
"chosen": true,
|
||||||
"use_tmp_table": true
|
"use_tmp_table": true
|
||||||
}
|
}
|
||||||
@ -1374,7 +1374,7 @@ EXPLAIN SELECT MIN(d) FROM t1 where b=2 and c=3 group by a {
|
|||||||
"reconsidering_access_paths_for_index_ordering": {
|
"reconsidering_access_paths_for_index_ordering": {
|
||||||
"clause": "GROUP BY",
|
"clause": "GROUP BY",
|
||||||
"fanout": 1,
|
"fanout": 1,
|
||||||
"read_time": 3.3717,
|
"read_time": 3.3131,
|
||||||
"table": "t1",
|
"table": "t1",
|
||||||
"rows_estimation": 7,
|
"rows_estimation": 7,
|
||||||
"possible_keys": [
|
"possible_keys": [
|
||||||
@ -1957,11 +1957,11 @@ explain select * from t1 where a=1 and b=2 order by c limit 1 {
|
|||||||
"selectivity_for_columns": [
|
"selectivity_for_columns": [
|
||||||
{
|
{
|
||||||
"column_name": "a",
|
"column_name": "a",
|
||||||
"selectivity_from_histograms": 0.0012
|
"selectivity_from_histograms": 0.1797
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"column_name": "b",
|
"column_name": "b",
|
||||||
"selectivity_from_histograms": 0.001
|
"selectivity_from_histograms": 0.0156
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -3347,9 +3347,9 @@ filler2 char(255),
|
|||||||
key(a)
|
key(a)
|
||||||
);
|
);
|
||||||
insert into t4 select a,a,a, a,a from t3;
|
insert into t4 select a,a,a, a,a from t3;
|
||||||
set @tmp_h=@@histogram_size, @tmp_u=@@use_stat_tables,
|
set @tmp_h=@@histogram_size, @tmp_ht=@@histogram_type, @tmp_u=@@use_stat_tables,
|
||||||
@tmp_o=@@optimizer_use_condition_selectivity;
|
@tmp_o=@@optimizer_use_condition_selectivity;
|
||||||
set histogram_size=100;
|
set histogram_size=100, histogram_type='single_prec_hb';
|
||||||
set use_stat_tables=preferably;
|
set use_stat_tables=preferably;
|
||||||
set optimizer_use_condition_selectivity=4;
|
set optimizer_use_condition_selectivity=4;
|
||||||
analyze table t4 persistent for columns(b) indexes ();
|
analyze table t4 persistent for columns(b) indexes ();
|
||||||
@ -3363,6 +3363,6 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t4 index NULL a 5 NULL 1188 100.00 Using where
|
1 SIMPLE t4 index NULL a 5 NULL 1188 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t4`.`c` AS `c`,`test`.`t4`.`filler1` AS `filler1`,`test`.`t4`.`filler2` AS `filler2` from `test`.`t4` where `test`.`t4`.`b` < 5000 order by `test`.`t4`.`a` limit 600
|
Note 1003 select `test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t4`.`c` AS `c`,`test`.`t4`.`filler1` AS `filler1`,`test`.`t4`.`filler2` AS `filler2` from `test`.`t4` where `test`.`t4`.`b` < 5000 order by `test`.`t4`.`a` limit 600
|
||||||
set histogram_size=@tmp_h, use_stat_tables=@tmp_u,
|
set histogram_size=@tmp_h, histogram_type=@tmp_ht, use_stat_tables=@tmp_u,
|
||||||
optimizer_use_condition_selectivity=@tmp_o;
|
optimizer_use_condition_selectivity=@tmp_o;
|
||||||
drop table t1,t2,t3,t4;
|
drop table t1,t2,t3,t4;
|
||||||
|
@ -2209,9 +2209,9 @@ create table t4 (
|
|||||||
);
|
);
|
||||||
insert into t4 select a,a,a, a,a from t3;
|
insert into t4 select a,a,a, a,a from t3;
|
||||||
|
|
||||||
set @tmp_h=@@histogram_size, @tmp_u=@@use_stat_tables,
|
set @tmp_h=@@histogram_size, @tmp_ht=@@histogram_type, @tmp_u=@@use_stat_tables,
|
||||||
@tmp_o=@@optimizer_use_condition_selectivity;
|
@tmp_o=@@optimizer_use_condition_selectivity;
|
||||||
set histogram_size=100;
|
set histogram_size=100, histogram_type='single_prec_hb';
|
||||||
set use_stat_tables=preferably;
|
set use_stat_tables=preferably;
|
||||||
set optimizer_use_condition_selectivity=4;
|
set optimizer_use_condition_selectivity=4;
|
||||||
analyze table t4 persistent for columns(b) indexes ();
|
analyze table t4 persistent for columns(b) indexes ();
|
||||||
@ -2220,7 +2220,7 @@ analyze table t4 persistent for columns(b) indexes ();
|
|||||||
explain extended
|
explain extended
|
||||||
select * from t4 where b < 5000 order by a limit 600;
|
select * from t4 where b < 5000 order by a limit 600;
|
||||||
|
|
||||||
set histogram_size=@tmp_h, use_stat_tables=@tmp_u,
|
set histogram_size=@tmp_h, histogram_type=@tmp_ht, use_stat_tables=@tmp_u,
|
||||||
optimizer_use_condition_selectivity=@tmp_o;
|
optimizer_use_condition_selectivity=@tmp_o;
|
||||||
|
|
||||||
drop table t1,t2,t3,t4;
|
drop table t1,t2,t3,t4;
|
||||||
|
@ -2737,7 +2737,7 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t2 p1,p2 ALL NULL NULL NULL NULL 400 Using where
|
1 SIMPLE t2 p1,p2 ALL NULL NULL NULL NULL 400 Using where
|
||||||
explain extended select * from t2 where b=5;
|
explain extended select * from t2 where b=5;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 1000 19.80 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 1000 19.61 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t2`.`part_key` AS `part_key`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t2` where `test`.`t2`.`b` = 5
|
Note 1003 select `test`.`t2`.`part_key` AS `part_key`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t2` where `test`.`t2`.`b` = 5
|
||||||
explain partitions select * from t2 where b=5;
|
explain partitions select * from t2 where b=5;
|
||||||
@ -2745,7 +2745,7 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t2 p0,p1,p2,p3,p4 ALL NULL NULL NULL NULL 1000 Using where
|
1 SIMPLE t2 p0,p1,p2,p3,p4 ALL NULL NULL NULL NULL 1000 Using where
|
||||||
explain extended select * from t2 partition(p0) where b=1;
|
explain extended select * from t2 partition(p0) where b=1;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 200 19.80 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 200 19.61 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t2`.`part_key` AS `part_key`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t2` PARTITION (`p0`) where `test`.`t2`.`b` = 1
|
Note 1003 select `test`.`t2`.`part_key` AS `part_key`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t2` PARTITION (`p0`) where `test`.`t2`.`b` = 1
|
||||||
set @@use_stat_tables= @save_use_stat_tables;
|
set @@use_stat_tables= @save_use_stat_tables;
|
||||||
|
@ -350,7 +350,7 @@ WHERE VARIABLE_NAME LIKE 'HANDLER_%' AND VARIABLE_VALUE > 0;
|
|||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
HANDLER_COMMIT 1
|
HANDLER_COMMIT 1
|
||||||
HANDLER_READ_FIRST 1
|
HANDLER_READ_FIRST 1
|
||||||
HANDLER_READ_KEY 6
|
HANDLER_READ_KEY 8
|
||||||
HANDLER_TMP_WRITE 24
|
HANDLER_TMP_WRITE 24
|
||||||
# Should be 1 commit
|
# Should be 1 commit
|
||||||
# 4 locks (1 ha_partition + 1 ha_innobase) x 2 (lock/unlock)
|
# 4 locks (1 ha_partition + 1 ha_innobase) x 2 (lock/unlock)
|
||||||
|
@ -10,6 +10,8 @@ set use_stat_tables='preferably';
|
|||||||
set @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity;
|
set @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity;
|
||||||
set @save_histogram_size=@@histogram_size;
|
set @save_histogram_size=@@histogram_size;
|
||||||
set @save_histogram_type=@@histogram_type;
|
set @save_histogram_type=@@histogram_type;
|
||||||
|
set histogram_size=0;
|
||||||
|
set histogram_type='single_prec_hb';
|
||||||
set optimizer_use_condition_selectivity=3;
|
set optimizer_use_condition_selectivity=3;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
insert into t1 values
|
insert into t1 values
|
||||||
@ -1369,14 +1371,14 @@ test.t2 analyze status Table is already up to date
|
|||||||
explain extended
|
explain extended
|
||||||
select * from t1 straight_join t2 where t1.a=t2.a and t1.a<10;
|
select * from t1 straight_join t2 where t1.a=t2.a and t1.a<10;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 0.99 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 1.96 Using where
|
||||||
1 SIMPLE t2 ref a a 5 test.t1.a 10 100.00
|
1 SIMPLE t2 ref a a 5 test.t1.a 10 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` straight_join `test`.`t2` where `test`.`t2`.`a` = `test`.`t1`.`a` and `test`.`t1`.`a` < 10
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` straight_join `test`.`t2` where `test`.`t2`.`a` = `test`.`t1`.`a` and `test`.`t1`.`a` < 10
|
||||||
explain extended
|
explain extended
|
||||||
select * from t1 straight_join t2 where t1.a=t2.a and t2.a<10;
|
select * from t1 straight_join t2 where t1.a=t2.a and t2.a<10;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 0.99 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 1.96 Using where
|
||||||
1 SIMPLE t2 ref a a 5 test.t1.a 10 100.00
|
1 SIMPLE t2 ref a a 5 test.t1.a 10 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` straight_join `test`.`t2` where `test`.`t2`.`a` = `test`.`t1`.`a` and `test`.`t1`.`a` < 10
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` straight_join `test`.`t2` where `test`.`t2`.`a` = `test`.`t1`.`a` and `test`.`t1`.`a` < 10
|
||||||
|
@ -14,6 +14,8 @@ set use_stat_tables='preferably';
|
|||||||
set @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity;
|
set @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity;
|
||||||
set @save_histogram_size=@@histogram_size;
|
set @save_histogram_size=@@histogram_size;
|
||||||
set @save_histogram_type=@@histogram_type;
|
set @save_histogram_type=@@histogram_type;
|
||||||
|
set histogram_size=0;
|
||||||
|
set histogram_type='single_prec_hb';
|
||||||
|
|
||||||
# check that statistics on nulls is used
|
# check that statistics on nulls is used
|
||||||
|
|
||||||
|
@ -13,6 +13,8 @@ set use_stat_tables='preferably';
|
|||||||
set @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity;
|
set @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity;
|
||||||
set @save_histogram_size=@@histogram_size;
|
set @save_histogram_size=@@histogram_size;
|
||||||
set @save_histogram_type=@@histogram_type;
|
set @save_histogram_type=@@histogram_type;
|
||||||
|
set histogram_size=0;
|
||||||
|
set histogram_type='single_prec_hb';
|
||||||
set optimizer_use_condition_selectivity=3;
|
set optimizer_use_condition_selectivity=3;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
insert into t1 values
|
insert into t1 values
|
||||||
@ -1379,14 +1381,14 @@ test.t2 analyze status OK
|
|||||||
explain extended
|
explain extended
|
||||||
select * from t1 straight_join t2 where t1.a=t2.a and t1.a<10;
|
select * from t1 straight_join t2 where t1.a=t2.a and t1.a<10;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 0.99 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 1.96 Using where
|
||||||
1 SIMPLE t2 ref a a 5 test.t1.a 10 100.00
|
1 SIMPLE t2 ref a a 5 test.t1.a 10 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` straight_join `test`.`t2` where `test`.`t2`.`a` = `test`.`t1`.`a` and `test`.`t1`.`a` < 10
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` straight_join `test`.`t2` where `test`.`t2`.`a` = `test`.`t1`.`a` and `test`.`t1`.`a` < 10
|
||||||
explain extended
|
explain extended
|
||||||
select * from t1 straight_join t2 where t1.a=t2.a and t2.a<10;
|
select * from t1 straight_join t2 where t1.a=t2.a and t2.a<10;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 0.99 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 1.96 Using where
|
||||||
1 SIMPLE t2 ref a a 5 test.t1.a 10 100.00
|
1 SIMPLE t2 ref a a 5 test.t1.a 10 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` straight_join `test`.`t2` where `test`.`t2`.`a` = `test`.`t1`.`a` and `test`.`t1`.`a` < 10
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` straight_join `test`.`t2` where `test`.`t2`.`a` = `test`.`t1`.`a` and `test`.`t1`.`a` < 10
|
||||||
|
@ -6,6 +6,8 @@ select @@session.use_stat_tables;
|
|||||||
COMPLEMENTARY
|
COMPLEMENTARY
|
||||||
set @save_use_stat_tables=@@use_stat_tables;
|
set @save_use_stat_tables=@@use_stat_tables;
|
||||||
set use_stat_tables='preferably';
|
set use_stat_tables='preferably';
|
||||||
|
set @tmp_stt_hs=@@histogram_size, @tmp_stt_ht=@@histogram_type;
|
||||||
|
set histogram_size=0, histogram_type='single_prec_hb';
|
||||||
DROP DATABASE IF EXISTS dbt3_s001;
|
DROP DATABASE IF EXISTS dbt3_s001;
|
||||||
CREATE DATABASE dbt3_s001;
|
CREATE DATABASE dbt3_s001;
|
||||||
use dbt3_s001;
|
use dbt3_s001;
|
||||||
@ -680,4 +682,5 @@ select * from t1 where a=1 and b=3;
|
|||||||
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 10 10.00 2.78 10.00 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 10.00 2.78 10.00 Using where
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
set histogram_size=@tmp_stt_hs, histogram_type=@tmp_stt_ht;
|
||||||
set use_stat_tables=@save_use_stat_tables;
|
set use_stat_tables=@save_use_stat_tables;
|
||||||
|
@ -6,6 +6,8 @@ select @@session.use_stat_tables;
|
|||||||
set @save_use_stat_tables=@@use_stat_tables;
|
set @save_use_stat_tables=@@use_stat_tables;
|
||||||
|
|
||||||
set use_stat_tables='preferably';
|
set use_stat_tables='preferably';
|
||||||
|
set @tmp_stt_hs=@@histogram_size, @tmp_stt_ht=@@histogram_type;
|
||||||
|
set histogram_size=0, histogram_type='single_prec_hb';
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
DROP DATABASE IF EXISTS dbt3_s001;
|
DROP DATABASE IF EXISTS dbt3_s001;
|
||||||
@ -443,4 +445,5 @@ select * from mysql.column_stats;
|
|||||||
analyze
|
analyze
|
||||||
select * from t1 where a=1 and b=3;
|
select * from t1 where a=1 and b=3;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
set histogram_size=@tmp_stt_hs, histogram_type=@tmp_stt_ht;
|
||||||
set use_stat_tables=@save_use_stat_tables;
|
set use_stat_tables=@save_use_stat_tables;
|
||||||
|
@ -14,6 +14,8 @@ select @@session.use_stat_tables;
|
|||||||
COMPLEMENTARY
|
COMPLEMENTARY
|
||||||
set @save_use_stat_tables=@@use_stat_tables;
|
set @save_use_stat_tables=@@use_stat_tables;
|
||||||
set use_stat_tables='preferably';
|
set use_stat_tables='preferably';
|
||||||
|
set @tmp_stt_hs=@@histogram_size, @tmp_stt_ht=@@histogram_type;
|
||||||
|
set histogram_size=0, histogram_type='single_prec_hb';
|
||||||
DROP DATABASE IF EXISTS dbt3_s001;
|
DROP DATABASE IF EXISTS dbt3_s001;
|
||||||
CREATE DATABASE dbt3_s001;
|
CREATE DATABASE dbt3_s001;
|
||||||
use dbt3_s001;
|
use dbt3_s001;
|
||||||
@ -712,6 +714,7 @@ select * from t1 where a=1 and b=3;
|
|||||||
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 10 10.00 2.78 10.00 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 10.00 2.78 10.00 Using where
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
set histogram_size=@tmp_stt_hs, histogram_type=@tmp_stt_ht;
|
||||||
set use_stat_tables=@save_use_stat_tables;
|
set use_stat_tables=@save_use_stat_tables;
|
||||||
set global innodb_stats_persistent= @innodb_stats_persistent_save;
|
set global innodb_stats_persistent= @innodb_stats_persistent_save;
|
||||||
set global innodb_stats_persistent_sample_pages=
|
set global innodb_stats_persistent_sample_pages=
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
drop table if exists t1,t2;
|
drop table if exists t1,t2;
|
||||||
set @save_use_stat_tables=@@use_stat_tables;
|
set @save_use_stat_tables=@@use_stat_tables;
|
||||||
|
set @save_hist_size=@@histogram_size, @save_hist_type=@@histogram_type;
|
||||||
|
set histogram_size=0, histogram_type='single_prec_hb';
|
||||||
DELETE FROM mysql.table_stats;
|
DELETE FROM mysql.table_stats;
|
||||||
DELETE FROM mysql.column_stats;
|
DELETE FROM mysql.column_stats;
|
||||||
DELETE FROM mysql.index_stats;
|
DELETE FROM mysql.index_stats;
|
||||||
@ -246,7 +248,7 @@ test t1 e 0.01 0.112 0.2250 6.2000 8 DOUBLE_PREC_HB 000005056464E1E1
|
|||||||
test t1 f 1 5 0.2000 6.4000 8 DOUBLE_PREC_HB FF3FFF7FFFBFFFBF
|
test t1 f 1 5 0.2000 6.4000 8 DOUBLE_PREC_HB FF3FFF7FFFBFFFBF
|
||||||
DELETE FROM mysql.column_stats;
|
DELETE FROM mysql.column_stats;
|
||||||
set histogram_size= 0;
|
set histogram_size= 0;
|
||||||
set histogram_type=default;
|
set histogram_type='single_prec_hb';
|
||||||
ANALYZE TABLE t1;
|
ANALYZE TABLE t1;
|
||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.t1 analyze status Engine-independent statistics collected
|
test.t1 analyze status Engine-independent statistics collected
|
||||||
@ -1504,8 +1506,8 @@ hist_size 254
|
|||||||
hist_type DOUBLE_PREC_HB
|
hist_type DOUBLE_PREC_HB
|
||||||
hex(histogram) 1F00A1002B023002350238023F02430249024E02520258025D02630268026E02720276027B02800285028C02920297029D02A102A802AC02B402BC02C402CC02D302DA02E302EA02F102F802010305030C03120319031F03290333033D0343034F03590363036D037803840390039A03A603B303C303D103E003F203020412042404330440045304600472047F049104A204B804C804DE04F2040A0526053F0558056F058E05B305D905F4051306380667068406AB06DA06020731075C079407C507F8072E085E08A508DF0824096909CC092E0A760AD50A400BA90B150CAD0C310D240E130F0E103B11B9126B14F0166B192F1CB71FFF240630483FC567
|
hex(histogram) 1F00A1002B023002350238023F02430249024E02520258025D02630268026E02720276027B02800285028C02920297029D02A102A802AC02B402BC02C402CC02D302DA02E302EA02F102F802010305030C03120319031F03290333033D0343034F03590363036D037803840390039A03A603B303C303D103E003F203020412042404330440045304600472047F049104A204B804C804DE04F2040A0526053F0558056F058E05B305D905F4051306380667068406AB06DA06020731075C079407C507F8072E085E08A508DF0824096909CC092E0A760AD50A400BA90B150CAD0C310D240E130F0E103B11B9126B14F0166B192F1CB71FFF240630483FC567
|
||||||
decode_histogram(hist_type,histogram) 0.00047,0.00198,0.00601,0.00008,0.00008,0.00005,0.00011,0.00006,0.00009,0.00008,0.00006,0.00009,0.00008,0.00009,0.00008,0.00009,0.00006,0.00006,0.00008,0.00008,0.00008,0.00011,0.00009,0.00008,0.00009,0.00006,0.00011,0.00006,0.00012,0.00012,0.00012,0.00012,0.00011,0.00011,0.00014,0.00011,0.00011,0.00011,0.00014,0.00006,0.00011,0.00009,0.00011,0.00009,0.00015,0.00015,0.00015,0.00009,0.00018,0.00015,0.00015,0.00015,0.00017,0.00018,0.00018,0.00015,0.00018,0.00020,0.00024,0.00021,0.00023,0.00027,0.00024,0.00024,0.00027,0.00023,0.00020,0.00029,0.00020,0.00027,0.00020,0.00027,0.00026,0.00034,0.00024,0.00034,0.00031,0.00037,0.00043,0.00038,0.00038,0.00035,0.00047,0.00056,0.00058,0.00041,0.00047,0.00056,0.00072,0.00044,0.00060,0.00072,0.00061,0.00072,0.00066,0.00085,0.00075,0.00078,0.00082,0.00073,0.00108,0.00089,0.00105,0.00105,0.00151,0.00150,0.00110,0.00145,0.00163,0.00160,0.00165,0.00232,0.00201,0.00371,0.00365,0.00383,0.00459,0.00583,0.00662,0.00984,0.00969,0.01080,0.01379,0.02063,0.04308,0.05960,0.15816,0.59464
|
decode_histogram(hist_type,histogram) 0.00047,0.00198,0.00601,0.00008,0.00008,0.00005,0.00011,0.00006,0.00009,0.00008,0.00006,0.00009,0.00008,0.00009,0.00008,0.00009,0.00006,0.00006,0.00008,0.00008,0.00008,0.00011,0.00009,0.00008,0.00009,0.00006,0.00011,0.00006,0.00012,0.00012,0.00012,0.00012,0.00011,0.00011,0.00014,0.00011,0.00011,0.00011,0.00014,0.00006,0.00011,0.00009,0.00011,0.00009,0.00015,0.00015,0.00015,0.00009,0.00018,0.00015,0.00015,0.00015,0.00017,0.00018,0.00018,0.00015,0.00018,0.00020,0.00024,0.00021,0.00023,0.00027,0.00024,0.00024,0.00027,0.00023,0.00020,0.00029,0.00020,0.00027,0.00020,0.00027,0.00026,0.00034,0.00024,0.00034,0.00031,0.00037,0.00043,0.00038,0.00038,0.00035,0.00047,0.00056,0.00058,0.00041,0.00047,0.00056,0.00072,0.00044,0.00060,0.00072,0.00061,0.00072,0.00066,0.00085,0.00075,0.00078,0.00082,0.00073,0.00108,0.00089,0.00105,0.00105,0.00151,0.00150,0.00110,0.00145,0.00163,0.00160,0.00165,0.00232,0.00201,0.00371,0.00365,0.00383,0.00459,0.00583,0.00662,0.00984,0.00969,0.01080,0.01379,0.02063,0.04308,0.05960,0.15816,0.59464
|
||||||
set histogram_type=default;
|
set histogram_type='single_prec_hb';
|
||||||
set histogram_size=default;
|
set histogram_size=0;
|
||||||
use test;
|
use test;
|
||||||
DROP DATABASE world;
|
DROP DATABASE world;
|
||||||
SELECT UPPER(db_name), UPPER(table_name), cardinality
|
SELECT UPPER(db_name), UPPER(table_name), cardinality
|
||||||
@ -1600,8 +1602,8 @@ hist_size, hist_type, HEX(histogram)
|
|||||||
FROM mysql.column_stats;
|
FROM mysql.column_stats;
|
||||||
db_name table_name column_name min_value max_value nulls_ratio avg_frequency hist_size hist_type HEX(histogram)
|
db_name table_name column_name min_value max_value nulls_ratio avg_frequency hist_size hist_type HEX(histogram)
|
||||||
test t1 a 1 5 0.0000 1.0000 10 DOUBLE_PREC_HB 0000FF3FFF7FFFBFFFFF
|
test t1 a 1 5 0.0000 1.0000 10 DOUBLE_PREC_HB 0000FF3FFF7FFFBFFFFF
|
||||||
set histogram_size=default;
|
set histogram_size=0;
|
||||||
set histogram_type=default;
|
set histogram_type='single_prec_hb';
|
||||||
drop table t1;
|
drop table t1;
|
||||||
#
|
#
|
||||||
# Bug mdev-4369: histogram for a column with many distinct values
|
# Bug mdev-4369: histogram for a column with many distinct values
|
||||||
@ -1641,7 +1643,7 @@ hist_size, hist_type, HEX(histogram)
|
|||||||
FROM mysql.column_stats;
|
FROM mysql.column_stats;
|
||||||
db_name table_name column_name min_value max_value nulls_ratio avg_frequency hist_size hist_type HEX(histogram)
|
db_name table_name column_name min_value max_value nulls_ratio avg_frequency hist_size hist_type HEX(histogram)
|
||||||
test t2 id 1 1024 0.0000 8.0000 63 SINGLE_PREC_HB 03070B0F13171B1F23272B2F33373B3F43474B4F53575B5F63676B6F73777B7F83878B8F93979B9FA3A7ABAFB3B7BBBFC3C7CBCFD3D7DBDFE3E7EBEFF3F7FB
|
test t2 id 1 1024 0.0000 8.0000 63 SINGLE_PREC_HB 03070B0F13171B1F23272B2F33373B3F43474B4F53575B5F63676B6F73777B7F83878B8F93979B9FA3A7ABAFB3B7BBBFC3C7CBCFD3D7DBDFE3E7EBEFF3F7FB
|
||||||
set histogram_size=default;
|
set histogram_size=0;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
set use_stat_tables=@save_use_stat_tables;
|
set use_stat_tables=@save_use_stat_tables;
|
||||||
#
|
#
|
||||||
@ -1757,3 +1759,4 @@ DROP TABLE t1;
|
|||||||
#
|
#
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
|
set histogram_size=@save_hist_size, histogram_type=@save_hist_type;
|
||||||
|
@ -5,7 +5,8 @@ drop table if exists t1,t2;
|
|||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
|
||||||
set @save_use_stat_tables=@@use_stat_tables;
|
set @save_use_stat_tables=@@use_stat_tables;
|
||||||
|
set @save_hist_size=@@histogram_size, @save_hist_type=@@histogram_type;
|
||||||
|
set histogram_size=0, histogram_type='single_prec_hb';
|
||||||
DELETE FROM mysql.table_stats;
|
DELETE FROM mysql.table_stats;
|
||||||
--sorted_result
|
--sorted_result
|
||||||
DELETE FROM mysql.column_stats;
|
DELETE FROM mysql.column_stats;
|
||||||
@ -196,7 +197,7 @@ SELECT db_name, table_name, column_name,
|
|||||||
DELETE FROM mysql.column_stats;
|
DELETE FROM mysql.column_stats;
|
||||||
|
|
||||||
set histogram_size= 0;
|
set histogram_size= 0;
|
||||||
set histogram_type=default;
|
set histogram_type='single_prec_hb';
|
||||||
ANALYZE TABLE t1;
|
ANALYZE TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
@ -657,8 +658,8 @@ FLUSH TABLES;
|
|||||||
--query_vertical select UPPER(db_name),UPPER(table_name),UPPER(column_name),min_value,max_value,nulls_ratio,avg_length,avg_frequency,hist_size,hist_type,hex(histogram),decode_histogram(hist_type,histogram) from mysql.column_stats where UPPER(db_name)='WORLD' and UPPER(table_name)='COUNTRYLANGUAGE' and UPPER(column_name) = 'PERCENTAGE';
|
--query_vertical select UPPER(db_name),UPPER(table_name),UPPER(column_name),min_value,max_value,nulls_ratio,avg_length,avg_frequency,hist_size,hist_type,hex(histogram),decode_histogram(hist_type,histogram) from mysql.column_stats where UPPER(db_name)='WORLD' and UPPER(table_name)='COUNTRYLANGUAGE' and UPPER(column_name) = 'PERCENTAGE';
|
||||||
--query_vertical select UPPER(db_name),UPPER(table_name),UPPER(column_name),min_value,max_value,nulls_ratio,avg_length,avg_frequency,hist_size,hist_type,hex(histogram),decode_histogram(hist_type,histogram) from mysql.column_stats where UPPER(db_name)='WORLD' and UPPER(table_name)='CITY' and UPPER(column_name) = 'POPULATION';
|
--query_vertical select UPPER(db_name),UPPER(table_name),UPPER(column_name),min_value,max_value,nulls_ratio,avg_length,avg_frequency,hist_size,hist_type,hex(histogram),decode_histogram(hist_type,histogram) from mysql.column_stats where UPPER(db_name)='WORLD' and UPPER(table_name)='CITY' and UPPER(column_name) = 'POPULATION';
|
||||||
|
|
||||||
set histogram_type=default;
|
set histogram_type='single_prec_hb';
|
||||||
set histogram_size=default;
|
set histogram_size=0;
|
||||||
|
|
||||||
use test;
|
use test;
|
||||||
DROP DATABASE world;
|
DROP DATABASE world;
|
||||||
@ -732,8 +733,8 @@ select db_name, table_name, column_name,
|
|||||||
hist_size, hist_type, HEX(histogram)
|
hist_size, hist_type, HEX(histogram)
|
||||||
FROM mysql.column_stats;
|
FROM mysql.column_stats;
|
||||||
|
|
||||||
set histogram_size=default;
|
set histogram_size=0;
|
||||||
set histogram_type=default;
|
set histogram_type='single_prec_hb';
|
||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
@ -776,7 +777,7 @@ select db_name, table_name, column_name,
|
|||||||
hist_size, hist_type, HEX(histogram)
|
hist_size, hist_type, HEX(histogram)
|
||||||
FROM mysql.column_stats;
|
FROM mysql.column_stats;
|
||||||
|
|
||||||
set histogram_size=default;
|
set histogram_size=0;
|
||||||
|
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
@ -898,3 +899,5 @@ DROP TABLE t1;
|
|||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.2 tests
|
--echo # End of 10.2 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
set histogram_size=@save_hist_size, histogram_type=@save_hist_type;
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ explain extended
|
|||||||
select * from t1 where a1 in (select b1 from t2 where b1 > '0');
|
select * from t1 where a1 in (select b1 from t2 where b1 > '0');
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 99.22 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a1`>(<in_optimizer>(`test`.`t1`.`a1`,`test`.`t1`.`a1` in ( <materialize> (/* select#2 */ select `test`.`t2`.`b1` from `test`.`t2` where `test`.`t2`.`b1` > '0' ), <primary_index_lookup>(`test`.`t1`.`a1` in <temporary table> on distinct_key where `test`.`t1`.`a1` = `<subquery2>`.`b1`))))
|
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a1`>(<in_optimizer>(`test`.`t1`.`a1`,`test`.`t1`.`a1` in ( <materialize> (/* select#2 */ select `test`.`t2`.`b1` from `test`.`t2` where `test`.`t2`.`b1` > '0' ), <primary_index_lookup>(`test`.`t1`.`a1` in <temporary table> on distinct_key where `test`.`t1`.`a1` = `<subquery2>`.`b1`))))
|
||||||
select * from t1 where a1 in (select b1 from t2 where b1 > '0');
|
select * from t1 where a1 in (select b1 from t2 where b1 > '0');
|
||||||
@ -73,7 +73,7 @@ explain extended
|
|||||||
select * from t1 where a1 in (select b1 from t2 where b1 > '0' group by b1);
|
select * from t1 where a1 in (select b1 from t2 where b1 > '0' group by b1);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 99.22 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a1`>(<in_optimizer>(`test`.`t1`.`a1`,`test`.`t1`.`a1` in ( <materialize> (/* select#2 */ select `test`.`t2`.`b1` from `test`.`t2` where `test`.`t2`.`b1` > '0' ), <primary_index_lookup>(`test`.`t1`.`a1` in <temporary table> on distinct_key where `test`.`t1`.`a1` = `<subquery2>`.`b1`))))
|
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a1`>(<in_optimizer>(`test`.`t1`.`a1`,`test`.`t1`.`a1` in ( <materialize> (/* select#2 */ select `test`.`t2`.`b1` from `test`.`t2` where `test`.`t2`.`b1` > '0' ), <primary_index_lookup>(`test`.`t1`.`a1` in <temporary table> on distinct_key where `test`.`t1`.`a1` = `<subquery2>`.`b1`))))
|
||||||
select * from t1 where a1 in (select b1 from t2 where b1 > '0' group by b1);
|
select * from t1 where a1 in (select b1 from t2 where b1 > '0' group by b1);
|
||||||
@ -84,7 +84,7 @@ explain extended
|
|||||||
select * from t1 where (a1, a2) in (select b1, b2 from t2 where b1 > '0' group by b1, b2);
|
select * from t1 where (a1, a2) in (select b1, b2 from t2 where b1 > '0' group by b1, b2);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 99.22 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),(`test`.`t1`.`a1`,`test`.`t1`.`a2`) in ( <materialize> (/* select#2 */ select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where `test`.`t2`.`b1` > '0' ), <primary_index_lookup>(`test`.`t1`.`a1` in <temporary table> on distinct_key where `test`.`t1`.`a1` = `<subquery2>`.`b1` and `test`.`t1`.`a2` = `<subquery2>`.`b2`))))
|
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),(`test`.`t1`.`a1`,`test`.`t1`.`a2`) in ( <materialize> (/* select#2 */ select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where `test`.`t2`.`b1` > '0' ), <primary_index_lookup>(`test`.`t1`.`a1` in <temporary table> on distinct_key where `test`.`t1`.`a1` = `<subquery2>`.`b1` and `test`.`t1`.`a2` = `<subquery2>`.`b2`))))
|
||||||
select * from t1 where (a1, a2) in (select b1, b2 from t2 where b1 > '0' group by b1, b2);
|
select * from t1 where (a1, a2) in (select b1, b2 from t2 where b1 > '0' group by b1, b2);
|
||||||
@ -95,7 +95,7 @@ explain extended
|
|||||||
select * from t1 where (a1, a2) in (select b1, min(b2) from t2 where b1 > '0' group by b1);
|
select * from t1 where (a1, a2) in (select b1, min(b2) from t2 where b1 > '0' group by b1);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where; Using temporary
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 99.22 Using where; Using temporary
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),(`test`.`t1`.`a1`,`test`.`t1`.`a2`) in ( <materialize> (/* select#2 */ select `test`.`t2`.`b1`,min(`test`.`t2`.`b2`) from `test`.`t2` where `test`.`t2`.`b1` > '0' group by `test`.`t2`.`b1` ), <primary_index_lookup>(`test`.`t1`.`a1` in <temporary table> on distinct_key where `test`.`t1`.`a1` = `<subquery2>`.`b1` and `test`.`t1`.`a2` = `<subquery2>`.`min(b2)`))))
|
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),(`test`.`t1`.`a1`,`test`.`t1`.`a2`) in ( <materialize> (/* select#2 */ select `test`.`t2`.`b1`,min(`test`.`t2`.`b2`) from `test`.`t2` where `test`.`t2`.`b1` > '0' group by `test`.`t2`.`b1` ), <primary_index_lookup>(`test`.`t1`.`a1` in <temporary table> on distinct_key where `test`.`t1`.`a1` = `<subquery2>`.`b1` and `test`.`t1`.`a2` = `<subquery2>`.`min(b2)`))))
|
||||||
select * from t1 where (a1, a2) in (select b1, min(b2) from t2 where b1 > '0' group by b1);
|
select * from t1 where (a1, a2) in (select b1, min(b2) from t2 where b1 > '0' group by b1);
|
||||||
@ -322,7 +322,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
3 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
3 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||||
4 MATERIALIZED t2i index it2i2 it2i3 18 NULL 5 100.00 Using where; Using index
|
4 MATERIALIZED t2i index it2i2 it2i3 18 NULL 5 100.00 Using where; Using index
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 99.22 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),(`test`.`t1`.`a1`,`test`.`t1`.`a2`) in ( <materialize> (/* select#2 */ select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where `test`.`t2`.`b1` > '0' ), <primary_index_lookup>(`test`.`t1`.`a1` in <temporary table> on distinct_key where `test`.`t1`.`a1` = `<subquery2>`.`b1` and `test`.`t1`.`a2` = `<subquery2>`.`b2`)))) and <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),(`test`.`t1`.`a1`,`test`.`t1`.`a2`) in ( <materialize> (/* select#3 */ select `test`.`t3`.`c1`,`test`.`t3`.`c2` from `test`.`t3` where <expr_cache><`test`.`t3`.`c1`,`test`.`t3`.`c2`>(<in_optimizer>((`test`.`t3`.`c1`,`test`.`t3`.`c2`),(`test`.`t3`.`c1`,`test`.`t3`.`c2`) in ( <materialize> (/* select#4 */ select `test`.`t2i`.`b1`,`test`.`t2i`.`b2` from `test`.`t2i` where `test`.`t2i`.`b2` > '0' ), <primary_index_lookup>(`test`.`t3`.`c1` in <temporary table> on distinct_key where `test`.`t3`.`c1` = `<subquery4>`.`b1` and `test`.`t3`.`c2` = `<subquery4>`.`b2`)))) ), <primary_index_lookup>(`test`.`t1`.`a1` in <temporary table> on distinct_key where `test`.`t1`.`a1` = `<subquery3>`.`c1` and `test`.`t1`.`a2` = `<subquery3>`.`c2`))))
|
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),(`test`.`t1`.`a1`,`test`.`t1`.`a2`) in ( <materialize> (/* select#2 */ select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where `test`.`t2`.`b1` > '0' ), <primary_index_lookup>(`test`.`t1`.`a1` in <temporary table> on distinct_key where `test`.`t1`.`a1` = `<subquery2>`.`b1` and `test`.`t1`.`a2` = `<subquery2>`.`b2`)))) and <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),(`test`.`t1`.`a1`,`test`.`t1`.`a2`) in ( <materialize> (/* select#3 */ select `test`.`t3`.`c1`,`test`.`t3`.`c2` from `test`.`t3` where <expr_cache><`test`.`t3`.`c1`,`test`.`t3`.`c2`>(<in_optimizer>((`test`.`t3`.`c1`,`test`.`t3`.`c2`),(`test`.`t3`.`c1`,`test`.`t3`.`c2`) in ( <materialize> (/* select#4 */ select `test`.`t2i`.`b1`,`test`.`t2i`.`b2` from `test`.`t2i` where `test`.`t2i`.`b2` > '0' ), <primary_index_lookup>(`test`.`t3`.`c1` in <temporary table> on distinct_key where `test`.`t3`.`c1` = `<subquery4>`.`b1` and `test`.`t3`.`c2` = `<subquery4>`.`b2`)))) ), <primary_index_lookup>(`test`.`t1`.`a1` in <temporary table> on distinct_key where `test`.`t1`.`a1` = `<subquery3>`.`c1` and `test`.`t1`.`a2` = `<subquery3>`.`c2`))))
|
||||||
select * from t1
|
select * from t1
|
||||||
@ -452,8 +452,8 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
4 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
4 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||||
5 MATERIALIZED t2i index it2i2 it2i3 18 NULL 5 100.00 Using where; Using index
|
5 MATERIALIZED t2i index it2i2 it2i3 18 NULL 5 100.00 Using where; Using index
|
||||||
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 99.22 Using where
|
||||||
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 99.22 Using where
|
||||||
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),<exists>(/* select#2 */ select `test`.`t1`.`a1`,`test`.`t1`.`a2` from `test`.`t1` where `test`.`t1`.`a1` > '0' and <cache>(`test`.`t1`.`a1`) = `test`.`t1`.`a1` and <cache>(`test`.`t1`.`a2`) = `test`.`t1`.`a2` union /* select#3 */ select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where `test`.`t2`.`b1` < '9' and <cache>(`test`.`t1`.`a1`) = `test`.`t2`.`b1` and <cache>(`test`.`t1`.`a2`) = `test`.`t2`.`b2`))) and <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),(`test`.`t1`.`a1`,`test`.`t1`.`a2`) in ( <materialize> (/* select#4 */ select `test`.`t3`.`c1`,`test`.`t3`.`c2` from `test`.`t3` where <expr_cache><`test`.`t3`.`c1`,`test`.`t3`.`c2`>(<in_optimizer>((`test`.`t3`.`c1`,`test`.`t3`.`c2`),(`test`.`t3`.`c1`,`test`.`t3`.`c2`) in ( <materialize> (/* select#5 */ select `test`.`t2i`.`b1`,`test`.`t2i`.`b2` from `test`.`t2i` where `test`.`t2i`.`b2` > '0' ), <primary_index_lookup>(`test`.`t3`.`c1` in <temporary table> on distinct_key where `test`.`t3`.`c1` = `<subquery5>`.`b1` and `test`.`t3`.`c2` = `<subquery5>`.`b2`)))) ), <primary_index_lookup>(`test`.`t1`.`a1` in <temporary table> on distinct_key where `test`.`t1`.`a1` = `<subquery4>`.`c1` and `test`.`t1`.`a2` = `<subquery4>`.`c2`))))
|
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` where <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),<exists>(/* select#2 */ select `test`.`t1`.`a1`,`test`.`t1`.`a2` from `test`.`t1` where `test`.`t1`.`a1` > '0' and <cache>(`test`.`t1`.`a1`) = `test`.`t1`.`a1` and <cache>(`test`.`t1`.`a2`) = `test`.`t1`.`a2` union /* select#3 */ select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where `test`.`t2`.`b1` < '9' and <cache>(`test`.`t1`.`a1`) = `test`.`t2`.`b1` and <cache>(`test`.`t1`.`a2`) = `test`.`t2`.`b2`))) and <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),(`test`.`t1`.`a1`,`test`.`t1`.`a2`) in ( <materialize> (/* select#4 */ select `test`.`t3`.`c1`,`test`.`t3`.`c2` from `test`.`t3` where <expr_cache><`test`.`t3`.`c1`,`test`.`t3`.`c2`>(<in_optimizer>((`test`.`t3`.`c1`,`test`.`t3`.`c2`),(`test`.`t3`.`c1`,`test`.`t3`.`c2`) in ( <materialize> (/* select#5 */ select `test`.`t2i`.`b1`,`test`.`t2i`.`b2` from `test`.`t2i` where `test`.`t2i`.`b2` > '0' ), <primary_index_lookup>(`test`.`t3`.`c1` in <temporary table> on distinct_key where `test`.`t3`.`c1` = `<subquery5>`.`b1` and `test`.`t3`.`c2` = `<subquery5>`.`b2`)))) ), <primary_index_lookup>(`test`.`t1`.`a1` in <temporary table> on distinct_key where `test`.`t1`.`a1` = `<subquery4>`.`c1` and `test`.`t1`.`a2` = `<subquery4>`.`c2`))))
|
||||||
@ -475,8 +475,8 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (flat, BNL join)
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
4 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
4 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||||
5 MATERIALIZED t2i index it2i2 it2i3 18 NULL 5 100.00 Using where; Using index
|
5 MATERIALIZED t2i index it2i2 it2i3 18 NULL 5 100.00 Using where; Using index
|
||||||
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 99.22 Using where
|
||||||
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 99.22 Using where
|
||||||
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t3`.`c1` AS `c1`,`test`.`t3`.`c2` AS `c2` from `test`.`t1` join `test`.`t3` where `test`.`t3`.`c1` = `test`.`t1`.`a1` and <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),<exists>(/* select#2 */ select `test`.`t1`.`a1`,`test`.`t1`.`a2` from `test`.`t1` where `test`.`t1`.`a1` > '0' and <cache>(`test`.`t1`.`a1`) = `test`.`t1`.`a1` and <cache>(`test`.`t1`.`a2`) = `test`.`t1`.`a2` union /* select#3 */ select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where `test`.`t2`.`b1` < '9' and <cache>(`test`.`t1`.`a1`) = `test`.`t2`.`b1` and <cache>(`test`.`t1`.`a2`) = `test`.`t2`.`b2`))) and <expr_cache><`test`.`t3`.`c1`,`test`.`t3`.`c2`>(<in_optimizer>((`test`.`t3`.`c1`,`test`.`t3`.`c2`),(`test`.`t3`.`c1`,`test`.`t3`.`c2`) in ( <materialize> (/* select#4 */ select `test`.`t3`.`c1`,`test`.`t3`.`c2` from `test`.`t3` where <expr_cache><`test`.`t3`.`c1`,`test`.`t3`.`c2`>(<in_optimizer>((`test`.`t3`.`c1`,`test`.`t3`.`c2`),(`test`.`t3`.`c1`,`test`.`t3`.`c2`) in ( <materialize> (/* select#5 */ select `test`.`t2i`.`b1`,`test`.`t2i`.`b2` from `test`.`t2i` where `test`.`t2i`.`b2` > '0' ), <primary_index_lookup>(`test`.`t3`.`c1` in <temporary table> on distinct_key where `test`.`t3`.`c1` = `<subquery5>`.`b1` and `test`.`t3`.`c2` = `<subquery5>`.`b2`)))) ), <primary_index_lookup>(`test`.`t3`.`c1` in <temporary table> on distinct_key where `test`.`t3`.`c1` = `<subquery4>`.`c1` and `test`.`t3`.`c2` = `<subquery4>`.`c2`))))
|
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t3`.`c1` AS `c1`,`test`.`t3`.`c2` AS `c2` from `test`.`t1` join `test`.`t3` where `test`.`t3`.`c1` = `test`.`t1`.`a1` and <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),<exists>(/* select#2 */ select `test`.`t1`.`a1`,`test`.`t1`.`a2` from `test`.`t1` where `test`.`t1`.`a1` > '0' and <cache>(`test`.`t1`.`a1`) = `test`.`t1`.`a1` and <cache>(`test`.`t1`.`a2`) = `test`.`t1`.`a2` union /* select#3 */ select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where `test`.`t2`.`b1` < '9' and <cache>(`test`.`t1`.`a1`) = `test`.`t2`.`b1` and <cache>(`test`.`t1`.`a2`) = `test`.`t2`.`b2`))) and <expr_cache><`test`.`t3`.`c1`,`test`.`t3`.`c2`>(<in_optimizer>((`test`.`t3`.`c1`,`test`.`t3`.`c2`),(`test`.`t3`.`c1`,`test`.`t3`.`c2`) in ( <materialize> (/* select#4 */ select `test`.`t3`.`c1`,`test`.`t3`.`c2` from `test`.`t3` where <expr_cache><`test`.`t3`.`c1`,`test`.`t3`.`c2`>(<in_optimizer>((`test`.`t3`.`c1`,`test`.`t3`.`c2`),(`test`.`t3`.`c1`,`test`.`t3`.`c2`) in ( <materialize> (/* select#5 */ select `test`.`t2i`.`b1`,`test`.`t2i`.`b2` from `test`.`t2i` where `test`.`t2i`.`b2` > '0' ), <primary_index_lookup>(`test`.`t3`.`c1` in <temporary table> on distinct_key where `test`.`t3`.`c1` = `<subquery5>`.`b1` and `test`.`t3`.`c2` = `<subquery5>`.`b2`)))) ), <primary_index_lookup>(`test`.`t3`.`c1` in <temporary table> on distinct_key where `test`.`t3`.`c1` = `<subquery4>`.`c1` and `test`.`t3`.`c2` = `<subquery4>`.`c2`))))
|
||||||
@ -497,8 +497,8 @@ select * from t3
|
|||||||
where c1 in (select a1 from t1 where a1 > '0' UNION select b1 from t2 where b1 < '9');
|
where c1 in (select a1 from t1 where a1 > '0' UNION select b1 from t2 where b1 < '9');
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||||
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 99.22 Using where
|
||||||
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 99.22 Using where
|
||||||
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 /* select#1 */ select `test`.`t3`.`c1` AS `c1`,`test`.`t3`.`c2` AS `c2` from `test`.`t3` where <expr_cache><`test`.`t3`.`c1`>(<in_optimizer>(`test`.`t3`.`c1`,<exists>(/* select#2 */ select `test`.`t1`.`a1` from `test`.`t1` where `test`.`t1`.`a1` > '0' and <cache>(`test`.`t3`.`c1`) = `test`.`t1`.`a1` union /* select#3 */ select `test`.`t2`.`b1` from `test`.`t2` where `test`.`t2`.`b1` < '9' and <cache>(`test`.`t3`.`c1`) = `test`.`t2`.`b1`)))
|
Note 1003 /* select#1 */ select `test`.`t3`.`c1` AS `c1`,`test`.`t3`.`c2` AS `c2` from `test`.`t3` where <expr_cache><`test`.`t3`.`c1`>(<in_optimizer>(`test`.`t3`.`c1`,<exists>(/* select#2 */ select `test`.`t1`.`a1` from `test`.`t1` where `test`.`t1`.`a1` > '0' and <cache>(`test`.`t3`.`c1`) = `test`.`t1`.`a1` union /* select#3 */ select `test`.`t2`.`b1` from `test`.`t2` where `test`.`t2`.`b1` < '9' and <cache>(`test`.`t3`.`c1`) = `test`.`t2`.`b1`)))
|
||||||
@ -712,7 +712,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
2 DEPENDENT SUBQUERY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
|
2 DEPENDENT SUBQUERY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
3 DEPENDENT SUBQUERY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
|
3 DEPENDENT SUBQUERY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
3 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; Using join buffer (flat, BNL join)
|
3 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
4 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
4 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 99.22 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` where <expr_cache><concat(`test`.`t1`.`a1`,'x')>(<in_optimizer>(concat(`test`.`t1`.`a1`,'x'),<exists>(/* select#2 */ select left(`test`.`t1_16`.`a1`,8) from `test`.`t1_16` where <expr_cache><`test`.`t1_16`.`a1`,`test`.`t1_16`.`a2`>(<in_optimizer>((`test`.`t1_16`.`a1`,`test`.`t1_16`.`a2`),<exists>(/* select#3 */ select `test`.`t2_16`.`b1`,`test`.`t2_16`.`b2` from `test`.`t2_16` join `test`.`t2` where `test`.`t2`.`b2` = substr(`test`.`t2_16`.`b2`,1,6) and <expr_cache><`test`.`t2`.`b1`>(<in_optimizer>(`test`.`t2`.`b1`,`test`.`t2`.`b1` in ( <materialize> (/* select#4 */ select `test`.`t3`.`c1` from `test`.`t3` where `test`.`t3`.`c2` > '0' ), <primary_index_lookup>(`test`.`t2`.`b1` in <temporary table> on distinct_key where `test`.`t2`.`b1` = `<subquery4>`.`c1`)))) and <cache>(`test`.`t1_16`.`a1`) = `test`.`t2_16`.`b1` and <cache>(`test`.`t1_16`.`a2`) = `test`.`t2_16`.`b2`))) and <cache>(concat(`test`.`t1`.`a1`,'x')) = left(`test`.`t1_16`.`a1`,8))))
|
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` where <expr_cache><concat(`test`.`t1`.`a1`,'x')>(<in_optimizer>(concat(`test`.`t1`.`a1`,'x'),<exists>(/* select#2 */ select left(`test`.`t1_16`.`a1`,8) from `test`.`t1_16` where <expr_cache><`test`.`t1_16`.`a1`,`test`.`t1_16`.`a2`>(<in_optimizer>((`test`.`t1_16`.`a1`,`test`.`t1_16`.`a2`),<exists>(/* select#3 */ select `test`.`t2_16`.`b1`,`test`.`t2_16`.`b2` from `test`.`t2_16` join `test`.`t2` where `test`.`t2`.`b2` = substr(`test`.`t2_16`.`b2`,1,6) and <expr_cache><`test`.`t2`.`b1`>(<in_optimizer>(`test`.`t2`.`b1`,`test`.`t2`.`b1` in ( <materialize> (/* select#4 */ select `test`.`t3`.`c1` from `test`.`t3` where `test`.`t3`.`c2` > '0' ), <primary_index_lookup>(`test`.`t2`.`b1` in <temporary table> on distinct_key where `test`.`t2`.`b1` = `<subquery4>`.`c1`)))) and <cache>(`test`.`t1_16`.`a1`) = `test`.`t2_16`.`b1` and <cache>(`test`.`t1_16`.`a2`) = `test`.`t2_16`.`b2`))) and <cache>(concat(`test`.`t1`.`a1`,'x')) = left(`test`.`t1_16`.`a1`,8))))
|
||||||
drop table t1_16, t2_16, t3_16;
|
drop table t1_16, t2_16, t3_16;
|
||||||
|
@ -60,9 +60,9 @@ set @@optimizer_switch='materialization=on,in_to_exists=off,firstmatch=off';
|
|||||||
explain extended
|
explain extended
|
||||||
select * from t1 where a1 in (select b1 from t2 where b1 > '0');
|
select * from t1 where a1 in (select b1 from t2 where b1 > '0');
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 99.22
|
||||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 8 func 1 100.00
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 8 func 1 100.00
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 99.22 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) where `test`.`t2`.`b1` > '0'
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) where `test`.`t2`.`b1` > '0'
|
||||||
select * from t1 where a1 in (select b1 from t2 where b1 > '0');
|
select * from t1 where a1 in (select b1 from t2 where b1 > '0');
|
||||||
@ -72,9 +72,9 @@ a1 a2
|
|||||||
explain extended
|
explain extended
|
||||||
select * from t1 where a1 in (select b1 from t2 where b1 > '0' group by b1);
|
select * from t1 where a1 in (select b1 from t2 where b1 > '0' group by b1);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 99.22
|
||||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 8 func 1 100.00
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 8 func 1 100.00
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 99.22 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) where `test`.`t2`.`b1` > '0'
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) where `test`.`t2`.`b1` > '0'
|
||||||
select * from t1 where a1 in (select b1 from t2 where b1 > '0' group by b1);
|
select * from t1 where a1 in (select b1 from t2 where b1 > '0' group by b1);
|
||||||
@ -84,9 +84,9 @@ a1 a2
|
|||||||
explain extended
|
explain extended
|
||||||
select * from t1 where (a1, a2) in (select b1, b2 from t2 where b1 > '0' group by b1, b2);
|
select * from t1 where (a1, a2) in (select b1, b2 from t2 where b1 > '0' group by b1, b2);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 99.22
|
||||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 func,func 1 100.00
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 func,func 1 100.00
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 99.22 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) where `test`.`t2`.`b1` > '0'
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) where `test`.`t2`.`b1` > '0'
|
||||||
select * from t1 where (a1, a2) in (select b1, b2 from t2 where b1 > '0' group by b1, b2);
|
select * from t1 where (a1, a2) in (select b1, b2 from t2 where b1 > '0' group by b1, b2);
|
||||||
@ -98,7 +98,7 @@ select * from t1 where (a1, a2) in (select b1, min(b2) from t2 where b1 > '0' gr
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 test.t1.a1,test.t1.a2 1 100.00
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 test.t1.a1,test.t1.a2 1 100.00
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where; Using temporary
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 99.22 Using where; Using temporary
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from <materialize> (/* select#2 */ select `test`.`t2`.`b1`,min(`test`.`t2`.`b2`) from `test`.`t2` where `test`.`t2`.`b1` > '0' group by `test`.`t2`.`b1`) join `test`.`t1` where `<subquery2>`.`b1` = `test`.`t1`.`a1` and `<subquery2>`.`min(b2)` = `test`.`t1`.`a2`
|
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from <materialize> (/* select#2 */ select `test`.`t2`.`b1`,min(`test`.`t2`.`b2`) from `test`.`t2` where `test`.`t2`.`b1` > '0' group by `test`.`t2`.`b1`) join `test`.`t1` where `<subquery2>`.`b1` = `test`.`t1`.`a1` and `<subquery2>`.`min(b2)` = `test`.`t1`.`a2`
|
||||||
select * from t1 where (a1, a2) in (select b1, min(b2) from t2 where b1 > '0' group by b1);
|
select * from t1 where (a1, a2) in (select b1, min(b2) from t2 where b1 > '0' group by b1);
|
||||||
@ -331,12 +331,12 @@ where (a1, a2) in (select b1, b2 from t2 where b1 > '0') and
|
|||||||
(a1, a2) in (select c1, c2 from t3
|
(a1, a2) in (select c1, c2 from t3
|
||||||
where (c1, c2) in (select b1, b2 from t2i where b2 > '0'));
|
where (c1, c2) in (select b1, b2 from t2i where b2 > '0'));
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 98.44
|
||||||
1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 16 func,func 1 100.00
|
1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 16 func,func 1 100.00
|
||||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 func,func 1 100.00
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 func,func 1 100.00
|
||||||
3 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
3 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 98.44 Using where
|
||||||
3 MATERIALIZED t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t3.c1,test.t3.c2 1 100.00 Using index
|
3 MATERIALIZED t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t3.c1,test.t3.c2 1 100.00 Using index
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 98.44 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where `test`.`t2i`.`b1` = `test`.`t3`.`c1` and `test`.`t2i`.`b2` = `test`.`t3`.`c2` and `test`.`t2`.`b1` > '0' and `test`.`t3`.`c2` > '0'
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where `test`.`t2i`.`b1` = `test`.`t3`.`c1` and `test`.`t2i`.`b2` = `test`.`t3`.`c2` and `test`.`t2`.`b1` > '0' and `test`.`t3`.`c2` > '0'
|
||||||
select * from t1
|
select * from t1
|
||||||
@ -373,12 +373,12 @@ b2 in (select c2 from t3 where c2 LIKE '%03')) and
|
|||||||
(a1, a2) in (select c1, c2 from t3
|
(a1, a2) in (select c1, c2 from t3
|
||||||
where (c1, c2) in (select b1, b2 from t2i where b2 > '0'));
|
where (c1, c2) in (select b1, b2 from t2i where b2 > '0'));
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 99.22
|
||||||
1 PRIMARY <subquery5> eq_ref distinct_key distinct_key 16 func,func 1 100.00
|
1 PRIMARY <subquery5> eq_ref distinct_key distinct_key 16 func,func 1 100.00
|
||||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 func,func 1 100.00
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 func,func 1 100.00
|
||||||
5 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
5 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 99.22 Using where
|
||||||
5 MATERIALIZED t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t3.c1,test.t3.c2 1 100.00 Using index
|
5 MATERIALIZED t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t3.c1,test.t3.c2 1 100.00 Using index
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 99.22 Using where
|
||||||
4 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
4 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||||
3 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
3 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
@ -399,10 +399,10 @@ b2 in (select c2 from t3 t3b where c2 LIKE '%03')) and
|
|||||||
(a1, a2) in (select c1, c2 from t3 t3c
|
(a1, a2) in (select c1, c2 from t3 t3c
|
||||||
where (c1, c2) in (select b1, b2 from t2i where b2 > '0'));
|
where (c1, c2) in (select b1, b2 from t2i where b2 > '0'));
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 99.22
|
||||||
1 PRIMARY <subquery5> eq_ref distinct_key distinct_key 16 func,func 1 100.00
|
1 PRIMARY <subquery5> eq_ref distinct_key distinct_key 16 func,func 1 100.00
|
||||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; Start temporary; End temporary; Using join buffer (flat, BNL join)
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 99.22 Using where; Start temporary; End temporary; Using join buffer (flat, BNL join)
|
||||||
5 MATERIALIZED t3c ALL NULL NULL NULL NULL 4 100.00 Using where
|
5 MATERIALIZED t3c ALL NULL NULL NULL NULL 4 99.22 Using where
|
||||||
5 MATERIALIZED t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t3c.c1,test.t3c.c2 1 100.00 Using index
|
5 MATERIALIZED t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t3c.c1,test.t3c.c2 1 100.00 Using index
|
||||||
4 MATERIALIZED t3b ALL NULL NULL NULL NULL 4 100.00 Using where
|
4 MATERIALIZED t3b ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||||
3 DEPENDENT SUBQUERY t3a ALL NULL NULL NULL NULL 4 100.00 Using where
|
3 DEPENDENT SUBQUERY t3a ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||||
@ -432,12 +432,12 @@ where (a1, a2) in (select b1, b2 from t2i where b1 > '0') and
|
|||||||
(a1, a2) in (select c1, c2 from t3i
|
(a1, a2) in (select c1, c2 from t3i
|
||||||
where (c1, c2) in (select b1, b2 from t2i where b2 > '0')));
|
where (c1, c2) in (select b1, b2 from t2i where b2 > '0')));
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL # # # 3 100.00 #
|
1 PRIMARY t1 ALL NULL # # # 3 99.22 #
|
||||||
1 PRIMARY <subquery5> eq_ref distinct_key # # # 1 100.00 #
|
1 PRIMARY <subquery5> eq_ref distinct_key # # # 1 100.00 #
|
||||||
1 PRIMARY <subquery2> eq_ref distinct_key # # # 1 100.00 #
|
1 PRIMARY <subquery2> eq_ref distinct_key # # # 1 100.00 #
|
||||||
5 MATERIALIZED t3 ALL NULL # # # 4 100.00 #
|
5 MATERIALIZED t3 ALL NULL # # # 4 99.22 #
|
||||||
5 MATERIALIZED t2i ref it2i1,it2i2,it2i3 # # # 1 100.00 #
|
5 MATERIALIZED t2i ref it2i1,it2i2,it2i3 # # # 1 100.00 #
|
||||||
2 MATERIALIZED t2 ALL NULL # # # 5 100.00 #
|
2 MATERIALIZED t2 ALL NULL # # # 5 99.22 #
|
||||||
4 MATERIALIZED t3 ALL NULL # # # 4 100.00 #
|
4 MATERIALIZED t3 ALL NULL # # # 4 100.00 #
|
||||||
3 MATERIALIZED t3 ALL NULL # # # 4 100.00 #
|
3 MATERIALIZED t3 ALL NULL # # # 4 100.00 #
|
||||||
7 UNION t2i index it2i1,it2i2,it2i3 # # # 5 50.00 #
|
7 UNION t2i index it2i1,it2i2,it2i3 # # # 5 50.00 #
|
||||||
@ -468,12 +468,12 @@ where (a1, a2) in (select * from t1 where a1 > '0' UNION select * from t2 where
|
|||||||
(a1, a2) in (select c1, c2 from t3
|
(a1, a2) in (select c1, c2 from t3
|
||||||
where (c1, c2) in (select b1, b2 from t2i where b2 > '0'));
|
where (c1, c2) in (select b1, b2 from t2i where b2 > '0'));
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 99.22 Using where
|
||||||
1 PRIMARY <subquery4> eq_ref distinct_key distinct_key 16 func,func 1 100.00
|
1 PRIMARY <subquery4> eq_ref distinct_key distinct_key 16 func,func 1 100.00
|
||||||
4 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
4 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 99.22 Using where
|
||||||
4 MATERIALIZED t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t3.c1,test.t3.c2 1 100.00 Using index
|
4 MATERIALIZED t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t3.c1,test.t3.c2 1 100.00 Using index
|
||||||
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 99.22 Using where
|
||||||
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 99.22 Using where
|
||||||
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2i` join `test`.`t3`) where `test`.`t2i`.`b1` = `test`.`t3`.`c1` and `test`.`t2i`.`b2` = `test`.`t3`.`c2` and <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),<exists>(/* select#2 */ select `test`.`t1`.`a1`,`test`.`t1`.`a2` from `test`.`t1` where `test`.`t1`.`a1` > '0' and <cache>(`test`.`t1`.`a1`) = `test`.`t1`.`a1` and <cache>(`test`.`t1`.`a2`) = `test`.`t1`.`a2` union /* select#3 */ select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where `test`.`t2`.`b1` < '9' and <cache>(`test`.`t1`.`a1`) = `test`.`t2`.`b1` and <cache>(`test`.`t1`.`a2`) = `test`.`t2`.`b2`))) and `test`.`t3`.`c2` > '0'
|
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2i` join `test`.`t3`) where `test`.`t2i`.`b1` = `test`.`t3`.`c1` and `test`.`t2i`.`b2` = `test`.`t3`.`c2` and <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),<exists>(/* select#2 */ select `test`.`t1`.`a1`,`test`.`t1`.`a2` from `test`.`t1` where `test`.`t1`.`a1` > '0' and <cache>(`test`.`t1`.`a1`) = `test`.`t1`.`a1` and <cache>(`test`.`t1`.`a2`) = `test`.`t1`.`a2` union /* select#3 */ select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where `test`.`t2`.`b1` < '9' and <cache>(`test`.`t1`.`a1`) = `test`.`t2`.`b1` and <cache>(`test`.`t1`.`a2`) = `test`.`t2`.`b2`))) and `test`.`t3`.`c2` > '0'
|
||||||
@ -493,11 +493,11 @@ a1 = c1;
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 PRIMARY <subquery4> ALL distinct_key NULL NULL NULL 4 100.00 Using where
|
1 PRIMARY <subquery4> ALL distinct_key NULL NULL NULL 4 100.00 Using where
|
||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (flat, BNL join)
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 4 99.22 Using where; Using join buffer (flat, BNL join)
|
||||||
4 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
4 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 99.22 Using where
|
||||||
4 MATERIALIZED t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t3.c1,test.t3.c2 1 100.00 Using index
|
4 MATERIALIZED t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t3.c1,test.t3.c2 1 100.00 Using index
|
||||||
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 99.22 Using where
|
||||||
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 99.22 Using where
|
||||||
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t3`.`c1` AS `c1`,`test`.`t3`.`c2` AS `c2` from `test`.`t1` semi join (`test`.`t2i` join `test`.`t3`) join `test`.`t3` where `test`.`t3`.`c1` = `test`.`t1`.`a1` and `test`.`t2i`.`b1` = `test`.`t3`.`c1` and `test`.`t3`.`c1` = `test`.`t1`.`a1` and `test`.`t2i`.`b2` = `test`.`t3`.`c2` and `test`.`t3`.`c2` = `test`.`t3`.`c2` and <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),<exists>(/* select#2 */ select `test`.`t1`.`a1`,`test`.`t1`.`a2` from `test`.`t1` where `test`.`t1`.`a1` > '0' and <cache>(`test`.`t1`.`a1`) = `test`.`t1`.`a1` and <cache>(`test`.`t1`.`a2`) = `test`.`t1`.`a2` union /* select#3 */ select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where `test`.`t2`.`b1` < '9' and <cache>(`test`.`t1`.`a1`) = `test`.`t2`.`b1` and <cache>(`test`.`t1`.`a2`) = `test`.`t2`.`b2`))) and `test`.`t3`.`c2` > '0'
|
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t3`.`c1` AS `c1`,`test`.`t3`.`c2` AS `c2` from `test`.`t1` semi join (`test`.`t2i` join `test`.`t3`) join `test`.`t3` where `test`.`t3`.`c1` = `test`.`t1`.`a1` and `test`.`t2i`.`b1` = `test`.`t3`.`c1` and `test`.`t3`.`c1` = `test`.`t1`.`a1` and `test`.`t2i`.`b2` = `test`.`t3`.`c2` and `test`.`t3`.`c2` = `test`.`t3`.`c2` and <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),<exists>(/* select#2 */ select `test`.`t1`.`a1`,`test`.`t1`.`a2` from `test`.`t1` where `test`.`t1`.`a1` > '0' and <cache>(`test`.`t1`.`a1`) = `test`.`t1`.`a1` and <cache>(`test`.`t1`.`a2`) = `test`.`t1`.`a2` union /* select#3 */ select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where `test`.`t2`.`b1` < '9' and <cache>(`test`.`t1`.`a1`) = `test`.`t2`.`b1` and <cache>(`test`.`t1`.`a2`) = `test`.`t2`.`b2`))) and `test`.`t3`.`c2` > '0'
|
||||||
@ -518,8 +518,8 @@ select * from t3
|
|||||||
where c1 in (select a1 from t1 where a1 > '0' UNION select b1 from t2 where b1 < '9');
|
where c1 in (select a1 from t1 where a1 > '0' UNION select b1 from t2 where b1 < '9');
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||||
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 99.22 Using where
|
||||||
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 99.22 Using where
|
||||||
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 /* select#1 */ select `test`.`t3`.`c1` AS `c1`,`test`.`t3`.`c2` AS `c2` from `test`.`t3` where <expr_cache><`test`.`t3`.`c1`>(<in_optimizer>(`test`.`t3`.`c1`,<exists>(/* select#2 */ select `test`.`t1`.`a1` from `test`.`t1` where `test`.`t1`.`a1` > '0' and <cache>(`test`.`t3`.`c1`) = `test`.`t1`.`a1` union /* select#3 */ select `test`.`t2`.`b1` from `test`.`t2` where `test`.`t2`.`b1` < '9' and <cache>(`test`.`t3`.`c1`) = `test`.`t2`.`b1`)))
|
Note 1003 /* select#1 */ select `test`.`t3`.`c1` AS `c1`,`test`.`t3`.`c2` AS `c2` from `test`.`t3` where <expr_cache><`test`.`t3`.`c1`>(<in_optimizer>(`test`.`t3`.`c1`,<exists>(/* select#2 */ select `test`.`t1`.`a1` from `test`.`t1` where `test`.`t1`.`a1` > '0' and <cache>(`test`.`t3`.`c1`) = `test`.`t1`.`a1` union /* select#3 */ select `test`.`t2`.`b1` from `test`.`t2` where `test`.`t2`.`b1` < '9' and <cache>(`test`.`t3`.`c1`) = `test`.`t2`.`b1`)))
|
||||||
@ -734,7 +734,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
|
||||||
1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Start temporary; Using join buffer (flat, BNL join)
|
1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Start temporary; Using join buffer (flat, BNL join)
|
||||||
1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (flat, BNL join)
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 4 99.22 Using where; Using join buffer (flat, BNL join)
|
||||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; End temporary; Using join buffer (flat, BNL join)
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; End temporary; Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t3` join `test`.`t2_16` join `test`.`t2` join `test`.`t1_16`) where `test`.`t2`.`b1` = `test`.`t3`.`c1` and `test`.`t2_16`.`b1` = `test`.`t1_16`.`a1` and `test`.`t2_16`.`b2` = `test`.`t1_16`.`a2` and `test`.`t2`.`b2` = substr(`test`.`t1_16`.`a2`,1,6) and `test`.`t3`.`c2` > '0' and concat(`test`.`t1`.`a1`,'x') = left(`test`.`t1_16`.`a1`,8)
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t3` join `test`.`t2_16` join `test`.`t2` join `test`.`t1_16`) where `test`.`t2`.`b1` = `test`.`t3`.`c1` and `test`.`t2_16`.`b1` = `test`.`t1_16`.`a1` and `test`.`t2_16`.`b2` = `test`.`t1_16`.`a2` and `test`.`t2`.`b2` = substr(`test`.`t1_16`.`a2`,1,6) and `test`.`t3`.`c2` > '0' and concat(`test`.`t1`.`a1`,'x') = left(`test`.`t1_16`.`a1`,8)
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
SET @start_global_value = @@global.histogram_size;
|
SET @start_global_value = @@global.histogram_size;
|
||||||
SELECT @start_global_value;
|
SELECT @start_global_value;
|
||||||
@start_global_value
|
@start_global_value
|
||||||
0
|
254
|
||||||
SET @start_session_value = @@session.histogram_size;
|
SET @start_session_value = @@session.histogram_size;
|
||||||
SELECT @start_session_value;
|
SELECT @start_session_value;
|
||||||
@start_session_value
|
@start_session_value
|
||||||
0
|
254
|
||||||
'#--------------------FN_DYNVARS_053_01-------------------------#'
|
'#--------------------FN_DYNVARS_053_01-------------------------#'
|
||||||
SET @@global.histogram_size = DEFAULT;
|
SET @@global.histogram_size = DEFAULT;
|
||||||
SELECT @@global.histogram_size;
|
SELECT @@global.histogram_size;
|
||||||
@@global.histogram_size
|
@@global.histogram_size
|
||||||
0
|
254
|
||||||
SET @@session.histogram_size = DEFAULT;
|
SET @@session.histogram_size = DEFAULT;
|
||||||
SELECT @@session.histogram_size;
|
SELECT @@session.histogram_size;
|
||||||
@@session.histogram_size
|
@@session.histogram_size
|
||||||
0
|
254
|
||||||
'#--------------------FN_DYNVARS_053_03-------------------------#'
|
'#--------------------FN_DYNVARS_053_03-------------------------#'
|
||||||
SET @@global.histogram_size = 1;
|
SET @@global.histogram_size = 1;
|
||||||
SELECT @@global.histogram_size;
|
SELECT @@global.histogram_size;
|
||||||
@ -129,8 +129,8 @@ SELECT @@local.histogram_size = @@session.histogram_size;
|
|||||||
SET @@global.histogram_size = @start_global_value;
|
SET @@global.histogram_size = @start_global_value;
|
||||||
SELECT @@global.histogram_size;
|
SELECT @@global.histogram_size;
|
||||||
@@global.histogram_size
|
@@global.histogram_size
|
||||||
0
|
254
|
||||||
SET @@session.histogram_size = @start_session_value;
|
SET @@session.histogram_size = @start_session_value;
|
||||||
SELECT @@session.histogram_size;
|
SELECT @@session.histogram_size;
|
||||||
@@session.histogram_size
|
@@session.histogram_size
|
||||||
0
|
254
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
SET @start_global_value = @@global.histogram_type;
|
SET @start_global_value = @@global.histogram_type;
|
||||||
SELECT @start_global_value;
|
SELECT @start_global_value;
|
||||||
@start_global_value
|
@start_global_value
|
||||||
SINGLE_PREC_HB
|
DOUBLE_PREC_HB
|
||||||
SET @start_session_value = @@session.histogram_type;
|
SET @start_session_value = @@session.histogram_type;
|
||||||
SELECT @start_session_value;
|
SELECT @start_session_value;
|
||||||
@start_session_value
|
@start_session_value
|
||||||
SINGLE_PREC_HB
|
DOUBLE_PREC_HB
|
||||||
SET @@global.histogram_type = 1;
|
SET @@global.histogram_type = 1;
|
||||||
SET @@global.histogram_type = DEFAULT;
|
SET @@global.histogram_type = DEFAULT;
|
||||||
SELECT @@global.histogram_type;
|
SELECT @@global.histogram_type;
|
||||||
@@global.histogram_type
|
@@global.histogram_type
|
||||||
SINGLE_PREC_HB
|
DOUBLE_PREC_HB
|
||||||
SET @@global.histogram_type = 0;
|
SET @@global.histogram_type = 0;
|
||||||
SELECT @@global.histogram_type;
|
SELECT @@global.histogram_type;
|
||||||
@@global.histogram_type
|
@@global.histogram_type
|
||||||
@ -71,9 +71,9 @@ HISTOGRAM_TYPE DOUBLE_PREC_HB
|
|||||||
SET @@global.histogram_type = @start_global_value;
|
SET @@global.histogram_type = @start_global_value;
|
||||||
SELECT @@global.histogram_type;
|
SELECT @@global.histogram_type;
|
||||||
@@global.histogram_type
|
@@global.histogram_type
|
||||||
SINGLE_PREC_HB
|
DOUBLE_PREC_HB
|
||||||
SET @@session.histogram_type = @start_session_value;
|
SET @@session.histogram_type = @start_session_value;
|
||||||
SELECT @@session.histogram_type;
|
SELECT @@session.histogram_type;
|
||||||
@@session.histogram_type
|
@@session.histogram_type
|
||||||
SINGLE_PREC_HB
|
DOUBLE_PREC_HB
|
||||||
set sql_mode='';
|
set sql_mode='';
|
||||||
|
@ -1427,10 +1427,10 @@ ENUM_VALUE_LIST NULL
|
|||||||
READ_ONLY YES
|
READ_ONLY YES
|
||||||
COMMAND_LINE_ARGUMENT NULL
|
COMMAND_LINE_ARGUMENT NULL
|
||||||
VARIABLE_NAME HISTOGRAM_SIZE
|
VARIABLE_NAME HISTOGRAM_SIZE
|
||||||
SESSION_VALUE 0
|
SESSION_VALUE 254
|
||||||
GLOBAL_VALUE 0
|
GLOBAL_VALUE 254
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 0
|
DEFAULT_VALUE 254
|
||||||
VARIABLE_SCOPE SESSION
|
VARIABLE_SCOPE SESSION
|
||||||
VARIABLE_TYPE BIGINT UNSIGNED
|
VARIABLE_TYPE BIGINT UNSIGNED
|
||||||
VARIABLE_COMMENT Number of bytes used for a histogram. If set to 0, no histograms are created by ANALYZE.
|
VARIABLE_COMMENT Number of bytes used for a histogram. If set to 0, no histograms are created by ANALYZE.
|
||||||
@ -1441,10 +1441,10 @@ ENUM_VALUE_LIST NULL
|
|||||||
READ_ONLY NO
|
READ_ONLY NO
|
||||||
COMMAND_LINE_ARGUMENT REQUIRED
|
COMMAND_LINE_ARGUMENT REQUIRED
|
||||||
VARIABLE_NAME HISTOGRAM_TYPE
|
VARIABLE_NAME HISTOGRAM_TYPE
|
||||||
SESSION_VALUE SINGLE_PREC_HB
|
SESSION_VALUE DOUBLE_PREC_HB
|
||||||
GLOBAL_VALUE SINGLE_PREC_HB
|
GLOBAL_VALUE DOUBLE_PREC_HB
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE SINGLE_PREC_HB
|
DEFAULT_VALUE DOUBLE_PREC_HB
|
||||||
VARIABLE_SCOPE SESSION
|
VARIABLE_SCOPE SESSION
|
||||||
VARIABLE_TYPE ENUM
|
VARIABLE_TYPE ENUM
|
||||||
VARIABLE_COMMENT Specifies type of the histograms created by ANALYZE. Possible values are: SINGLE_PREC_HB - single precision height-balanced, DOUBLE_PREC_HB - double precision height-balanced.
|
VARIABLE_COMMENT Specifies type of the histograms created by ANALYZE. Possible values are: SINGLE_PREC_HB - single precision height-balanced, DOUBLE_PREC_HB - double precision height-balanced.
|
||||||
|
@ -5936,7 +5936,7 @@ static Sys_var_ulong Sys_histogram_size(
|
|||||||
"Number of bytes used for a histogram. "
|
"Number of bytes used for a histogram. "
|
||||||
"If set to 0, no histograms are created by ANALYZE.",
|
"If set to 0, no histograms are created by ANALYZE.",
|
||||||
SESSION_VAR(histogram_size), CMD_LINE(REQUIRED_ARG),
|
SESSION_VAR(histogram_size), CMD_LINE(REQUIRED_ARG),
|
||||||
VALID_RANGE(0, 255), DEFAULT(0), BLOCK_SIZE(1));
|
VALID_RANGE(0, 255), DEFAULT(254), BLOCK_SIZE(1));
|
||||||
|
|
||||||
extern const char *histogram_types[];
|
extern const char *histogram_types[];
|
||||||
static Sys_var_enum Sys_histogram_type(
|
static Sys_var_enum Sys_histogram_type(
|
||||||
@ -5946,7 +5946,7 @@ static Sys_var_enum Sys_histogram_type(
|
|||||||
"SINGLE_PREC_HB - single precision height-balanced, "
|
"SINGLE_PREC_HB - single precision height-balanced, "
|
||||||
"DOUBLE_PREC_HB - double precision height-balanced.",
|
"DOUBLE_PREC_HB - double precision height-balanced.",
|
||||||
SESSION_VAR(histogram_type), CMD_LINE(REQUIRED_ARG),
|
SESSION_VAR(histogram_type), CMD_LINE(REQUIRED_ARG),
|
||||||
histogram_types, DEFAULT(0));
|
histogram_types, DEFAULT(1));
|
||||||
|
|
||||||
static Sys_var_mybool Sys_no_thread_alarm(
|
static Sys_var_mybool Sys_no_thread_alarm(
|
||||||
"debug_no_thread_alarm",
|
"debug_no_thread_alarm",
|
||||||
|
Reference in New Issue
Block a user