65 lines
2.6 KiB
Plaintext
65 lines
2.6 KiB
Plaintext
--disable_query_log
|
|
set @@session.explicit_defaults_for_timestamp=off;
|
|
--enable_query_log
|
|
#this file test default optimizer selectivity
|
|
|
|
--disable_warnings
|
|
drop table if exists t1, t2, t3;
|
|
--enable_warnings
|
|
create table t1(c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int, c9 int, c10 int,
|
|
index k1(c1),
|
|
index k2(c1,c2),
|
|
index k3(c1,c2,c3),
|
|
index k4(c1,c2,c3,c4),
|
|
index k5(c1,c2,c3,c4,c5));
|
|
|
|
create table t2(c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int, c9 int, c10 int,
|
|
primary key(c1, c6, c7),
|
|
index k1(c1),
|
|
index k2(c1,c2),
|
|
index k3(c1,c2,c3),
|
|
index k4(c1,c2,c3,c4),
|
|
index k5(c1,c2,c3,c4,c5));
|
|
|
|
|
|
create table t3(c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int, c9 int, c10 int,
|
|
primary key(c1, c2, c6),
|
|
index k1(c1),
|
|
index k2(c1,c2),
|
|
index k3(c1,c2,c3),
|
|
index k4(c1,c2,c3,c4),
|
|
index k5(c1,c2,c3,c4,c5));
|
|
|
|
## test cases to choose different index
|
|
explain select count(*) from t1;
|
|
explain select * from t1 where c1 = 1;
|
|
explain select * from t1 where c1 < 1;
|
|
explain select * from t1 where c1 > 1;
|
|
explain select * from t1 where c1 > 1 and c1 < 10;
|
|
explain select * from t1 where c1 = 1 and c2 < 1;
|
|
explain select * from t1 where c1 = 1 and c2 = 1;
|
|
explain select * from t1 where c1 = 1 and c2 = 1 and c3 < 1;
|
|
explain select * from t1 where c1 = 1 and c2 = 1 and c3 = 1;
|
|
|
|
## test cases to choose primary key and index
|
|
explain select count(*) from t2;
|
|
explain select * from t2 where c1 = 1;
|
|
explain select * from t2 where c1 < 1;
|
|
explain select * from t2 where c1 > 1;
|
|
explain select * from t2 where c1 > 1 and c1 < 10;
|
|
explain select * from t2 where c1 = 1 and c2 < 1;
|
|
explain select * from t2 where c1 = 1 and c2 = 1;
|
|
explain select * from t2 where c1 = 1 and c2 = 1 and c3 < 1;
|
|
explain select * from t2 where c1 = 1 and c2 = 1 and c3 = 1;
|
|
|
|
## test cases to choose primary key and index
|
|
explain select count(*) from t3;
|
|
explain select * from t3 where c1 = 1;
|
|
explain select * from t3 where c1 < 1;
|
|
explain select * from t3 where c1 > 1;
|
|
explain select * from t3 where c1 > 1 and c1 < 10;
|
|
explain select * from t3 where c1 = 1 and c2 < 1;
|
|
explain select * from t3 where c1 = 1 and c2 = 1;
|
|
explain select * from t3 where c1 = 1 and c2 = 1 and c3 < 1;
|
|
explain select * from t3 where c1 = 1 and c2 = 1 and c3 = 1;
|