Update main.selectivity test and results
This commit is contained in:
parent
6a0314063d
commit
c7e04af8bc
@ -1824,7 +1824,6 @@ test.t1 analyze status Table is already up to date
|
|||||||
test.t2 analyze status Engine-independent statistics collected
|
test.t2 analyze status Engine-independent statistics collected
|
||||||
test.t2 analyze status Table is already up to date
|
test.t2 analyze status Table is already up to date
|
||||||
set optimizer_switch='exists_to_in=off';
|
set optimizer_switch='exists_to_in=off';
|
||||||
set optimizer_use_condition_selectivity=2;
|
|
||||||
SELECT * FROM t1
|
SELECT * FROM t1
|
||||||
WHERE
|
WHERE
|
||||||
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
||||||
@ -1849,18 +1848,39 @@ id a
|
|||||||
17 17
|
17 17
|
||||||
18 18
|
18 18
|
||||||
19 19
|
19 19
|
||||||
explain SELECT * FROM t1
|
set statement optimizer_use_condition_selectivity=2 for explain SELECT * FROM t1
|
||||||
WHERE
|
WHERE
|
||||||
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
||||||
WHERE A.a=t1.a AND t2.b < 20);
|
WHERE A.a=t1.a AND t2.b < 20);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 100 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 100 Using where
|
||||||
2 DEPENDENT SUBQUERY A ref PRIMARY,a a 5 test.t1.a 1
|
3 DEPENDENT SUBQUERY A ref PRIMARY,a a 5 test.t1.a 1
|
||||||
2 DEPENDENT SUBQUERY t2 ref|filter a,b a|b 5|5 test.A.id 1 (10%) Using where; Using rowid filter
|
3 DEPENDENT SUBQUERY t2 ref|filter a,b a|b 5|5 test.A.id 1 (10%) Using where; Using rowid filter
|
||||||
EXPLAIN SELECT * FROM t1 A, t1 B WHERE A.a = B.a and A.id = 65;
|
set statement optimizer_use_condition_selectivity=4 for explain SELECT * FROM t1
|
||||||
|
WHERE
|
||||||
|
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
||||||
|
WHERE A.a=t1.a AND t2.b < 20);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE A const PRIMARY,a PRIMARY 4 const 1
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 100 Using where
|
||||||
1 SIMPLE B ref a a 5 const 1
|
3 DEPENDENT SUBQUERY A ref PRIMARY,a a 5 test.t1.a 1
|
||||||
|
3 DEPENDENT SUBQUERY t2 ref|filter a,b a|b 5|5 test.A.id 1 (10%) Using where; Using rowid filter
|
||||||
|
set @query="EXPLAIN SELECT * FROM t1 A, t1 B WHERE A.a = B.a and A.id = 65";
|
||||||
|
set statement optimizer_use_condition_selectivity=2 for explain SELECT * FROM t1
|
||||||
|
WHERE
|
||||||
|
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
||||||
|
WHERE A.a=t1.a AND t2.b < 20);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 100 Using where
|
||||||
|
3 DEPENDENT SUBQUERY A ref PRIMARY,a a 5 test.t1.a 1
|
||||||
|
3 DEPENDENT SUBQUERY t2 ref|filter a,b a|b 5|5 test.A.id 1 (10%) Using where; Using rowid filter
|
||||||
|
set statement optimizer_use_condition_selectivity=4 for explain SELECT * FROM t1
|
||||||
|
WHERE
|
||||||
|
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
||||||
|
WHERE A.a=t1.a AND t2.b < 20);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 100 Using where
|
||||||
|
3 DEPENDENT SUBQUERY A ref PRIMARY,a a 5 test.t1.a 1
|
||||||
|
3 DEPENDENT SUBQUERY t2 ref|filter a,b a|b 5|5 test.A.id 1 (10%) Using where; Using rowid filter
|
||||||
explain SELECT * FROM t1
|
explain SELECT * FROM t1
|
||||||
WHERE
|
WHERE
|
||||||
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
||||||
@ -1870,7 +1890,6 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
2 DEPENDENT SUBQUERY A ref PRIMARY,a a 5 test.t1.a 1
|
2 DEPENDENT SUBQUERY A ref PRIMARY,a a 5 test.t1.a 1
|
||||||
2 DEPENDENT SUBQUERY t2 ref|filter a,b a|b 5|5 test.A.id 1 (10%) Using where; Using rowid filter
|
2 DEPENDENT SUBQUERY t2 ref|filter a,b a|b 5|5 test.A.id 1 (10%) Using where; Using rowid filter
|
||||||
set optimizer_switch= @save_optimizer_switch;
|
set optimizer_switch= @save_optimizer_switch;
|
||||||
set optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
|
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
#
|
#
|
||||||
# MDEV-21495: Conditional jump or move depends on uninitialised value in sel_arg_range_seq_next
|
# MDEV-21495: Conditional jump or move depends on uninitialised value in sel_arg_range_seq_next
|
||||||
|
@ -1236,13 +1236,10 @@ set optimizer_use_condition_selectivity= @@optimizer_use_condition_selectivity;
|
|||||||
|
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # MDEV-20519: Query plan regression with optimizer_use_condition_selectivity=4
|
--echo # MDEV-20519: Query plan regression with optimizer_use_condition_selectivity=4
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
create table t1 (id int, a int, PRIMARY KEY(id), key(a));
|
create table t1 (id int, a int, PRIMARY KEY(id), key(a));
|
||||||
insert into t1 select seq,seq from seq_1_to_100;
|
insert into t1 select seq,seq from seq_1_to_100;
|
||||||
|
|
||||||
@ -1252,7 +1249,6 @@ insert into t2 select seq,seq,seq from seq_1_to_100;
|
|||||||
analyze table t1,t2 persistent for all;
|
analyze table t1,t2 persistent for all;
|
||||||
|
|
||||||
set optimizer_switch='exists_to_in=off';
|
set optimizer_switch='exists_to_in=off';
|
||||||
set optimizer_use_condition_selectivity=2;
|
|
||||||
|
|
||||||
let $query= SELECT * FROM t1
|
let $query= SELECT * FROM t1
|
||||||
WHERE
|
WHERE
|
||||||
@ -1260,14 +1256,16 @@ let $query= SELECT * FROM t1
|
|||||||
WHERE A.a=t1.a AND t2.b < 20);
|
WHERE A.a=t1.a AND t2.b < 20);
|
||||||
|
|
||||||
eval $query;
|
eval $query;
|
||||||
eval explain $query;
|
eval set statement optimizer_use_condition_selectivity=2 for explain $query;
|
||||||
|
eval set statement optimizer_use_condition_selectivity=4 for explain $query;
|
||||||
|
|
||||||
EXPLAIN SELECT * FROM t1 A, t1 B WHERE A.a = B.a and A.id = 65;
|
set @query="EXPLAIN SELECT * FROM t1 A, t1 B WHERE A.a = B.a and A.id = 65";
|
||||||
|
eval set statement optimizer_use_condition_selectivity=2 for explain $query;
|
||||||
|
eval set statement optimizer_use_condition_selectivity=4 for explain $query;
|
||||||
|
|
||||||
eval explain $query;
|
eval explain $query;
|
||||||
|
|
||||||
set optimizer_switch= @save_optimizer_switch;
|
set optimizer_switch= @save_optimizer_switch;
|
||||||
set optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
|
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -1834,7 +1834,6 @@ test.t1 analyze status OK
|
|||||||
test.t2 analyze status Engine-independent statistics collected
|
test.t2 analyze status Engine-independent statistics collected
|
||||||
test.t2 analyze status OK
|
test.t2 analyze status OK
|
||||||
set optimizer_switch='exists_to_in=off';
|
set optimizer_switch='exists_to_in=off';
|
||||||
set optimizer_use_condition_selectivity=2;
|
|
||||||
SELECT * FROM t1
|
SELECT * FROM t1
|
||||||
WHERE
|
WHERE
|
||||||
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
||||||
@ -1859,18 +1858,39 @@ id a
|
|||||||
17 17
|
17 17
|
||||||
18 18
|
18 18
|
||||||
19 19
|
19 19
|
||||||
explain SELECT * FROM t1
|
set statement optimizer_use_condition_selectivity=2 for explain SELECT * FROM t1
|
||||||
WHERE
|
WHERE
|
||||||
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
||||||
WHERE A.a=t1.a AND t2.b < 20);
|
WHERE A.a=t1.a AND t2.b < 20);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 index NULL a 5 NULL 100 Using where; Using index
|
1 PRIMARY t1 index NULL a 5 NULL 100 Using where; Using index
|
||||||
2 DEPENDENT SUBQUERY A ref PRIMARY,a a 5 test.t1.a 1 Using index
|
3 DEPENDENT SUBQUERY A ref PRIMARY,a a 5 test.t1.a 1 Using index
|
||||||
2 DEPENDENT SUBQUERY t2 ref|filter a,b a|b 5|5 test.A.id 1 (19%) Using where; Using rowid filter
|
3 DEPENDENT SUBQUERY t2 ref|filter a,b a|b 5|5 test.A.id 1 (19%) Using where; Using rowid filter
|
||||||
EXPLAIN SELECT * FROM t1 A, t1 B WHERE A.a = B.a and A.id = 65;
|
set statement optimizer_use_condition_selectivity=4 for explain SELECT * FROM t1
|
||||||
|
WHERE
|
||||||
|
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
||||||
|
WHERE A.a=t1.a AND t2.b < 20);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE A const PRIMARY,a PRIMARY 4 const 1
|
1 PRIMARY t1 index NULL a 5 NULL 100 Using where; Using index
|
||||||
1 SIMPLE B ref a a 5 const 1 Using index
|
3 DEPENDENT SUBQUERY A ref PRIMARY,a a 5 test.t1.a 1 Using index
|
||||||
|
3 DEPENDENT SUBQUERY t2 ref|filter a,b a|b 5|5 test.A.id 1 (19%) Using where; Using rowid filter
|
||||||
|
set @query="EXPLAIN SELECT * FROM t1 A, t1 B WHERE A.a = B.a and A.id = 65";
|
||||||
|
set statement optimizer_use_condition_selectivity=2 for explain SELECT * FROM t1
|
||||||
|
WHERE
|
||||||
|
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
||||||
|
WHERE A.a=t1.a AND t2.b < 20);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 index NULL a 5 NULL 100 Using where; Using index
|
||||||
|
3 DEPENDENT SUBQUERY A ref PRIMARY,a a 5 test.t1.a 1 Using index
|
||||||
|
3 DEPENDENT SUBQUERY t2 ref|filter a,b a|b 5|5 test.A.id 1 (19%) Using where; Using rowid filter
|
||||||
|
set statement optimizer_use_condition_selectivity=4 for explain SELECT * FROM t1
|
||||||
|
WHERE
|
||||||
|
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
||||||
|
WHERE A.a=t1.a AND t2.b < 20);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 index NULL a 5 NULL 100 Using where; Using index
|
||||||
|
3 DEPENDENT SUBQUERY A ref PRIMARY,a a 5 test.t1.a 1 Using index
|
||||||
|
3 DEPENDENT SUBQUERY t2 ref|filter a,b a|b 5|5 test.A.id 1 (19%) Using where; Using rowid filter
|
||||||
explain SELECT * FROM t1
|
explain SELECT * FROM t1
|
||||||
WHERE
|
WHERE
|
||||||
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
EXISTS (SELECT * FROM t1 A INNER JOIN t2 ON t2.a = A.id
|
||||||
@ -1880,7 +1900,6 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
2 DEPENDENT SUBQUERY A ref PRIMARY,a a 5 test.t1.a 1 Using index
|
2 DEPENDENT SUBQUERY A ref PRIMARY,a a 5 test.t1.a 1 Using index
|
||||||
2 DEPENDENT SUBQUERY t2 ref|filter a,b a|b 5|5 test.A.id 1 (19%) Using where; Using rowid filter
|
2 DEPENDENT SUBQUERY t2 ref|filter a,b a|b 5|5 test.A.id 1 (19%) Using where; Using rowid filter
|
||||||
set optimizer_switch= @save_optimizer_switch;
|
set optimizer_switch= @save_optimizer_switch;
|
||||||
set optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity;
|
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
#
|
#
|
||||||
# MDEV-21495: Conditional jump or move depends on uninitialised value in sel_arg_range_seq_next
|
# MDEV-21495: Conditional jump or move depends on uninitialised value in sel_arg_range_seq_next
|
||||||
|
Loading…
x
Reference in New Issue
Block a user