2010-09-07 16:06:33 +00:00
|
|
|
SET STORAGE_ENGINE = 'tokudb';
|
|
|
|
DROP TABLE IF EXISTS foo;
|
|
|
|
create table foo (a int, b int, c int, primary key (a,b));
|
|
|
|
insert into foo values (1,10,100),(2,20,200),(3,30,300),(4,40,400),(5,50,500),(6,60,600);
|
|
|
|
insert into foo values (1,100,100),(2,200,200),(3,300,300),(4,400,400),(5,500,500),(6,600,600);
|
|
|
|
select * from foo;
|
|
|
|
a b c
|
|
|
|
1 10 100
|
|
|
|
1 100 100
|
|
|
|
2 20 200
|
|
|
|
2 200 200
|
|
|
|
3 30 300
|
|
|
|
3 300 300
|
|
|
|
4 40 400
|
|
|
|
4 400 400
|
|
|
|
5 50 500
|
|
|
|
5 500 500
|
|
|
|
6 60 600
|
|
|
|
6 600 600
|
|
|
|
explain select * from foo where a=4;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo ref PRIMARY PRIMARY 4 const NULL;
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a=4;
|
|
|
|
a b c
|
|
|
|
4 40 400
|
|
|
|
4 400 400
|
|
|
|
explain select * from foo where a>4;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo range PRIMARY PRIMARY 4 NULL NULL; Using where
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a>4;
|
|
|
|
a b c
|
|
|
|
5 50 500
|
|
|
|
5 500 500
|
|
|
|
6 60 600
|
|
|
|
6 600 600
|
|
|
|
explain select * from foo where a<3 order by a desc;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo range PRIMARY PRIMARY 4 NULL NULL; Using where
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a<3 order by a desc;
|
|
|
|
a b c
|
|
|
|
2 200 200
|
|
|
|
2 20 200
|
|
|
|
1 100 100
|
|
|
|
1 10 100
|
|
|
|
explain select * from foo where a>=4;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo range PRIMARY PRIMARY 4 NULL NULL; Using where
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a>=4;
|
|
|
|
a b c
|
|
|
|
4 40 400
|
|
|
|
4 400 400
|
|
|
|
5 50 500
|
|
|
|
5 500 500
|
|
|
|
6 60 600
|
|
|
|
6 600 600
|
|
|
|
explain select * from foo where a<=2 order by a desc;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo range PRIMARY PRIMARY 4 NULL NULL; Using where
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a<=2 order by a desc;
|
|
|
|
a b c
|
|
|
|
2 200 200
|
|
|
|
2 20 200
|
|
|
|
1 100 100
|
|
|
|
1 10 100
|
|
|
|
explain select * from foo where a=4 order by b desc;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo ref PRIMARY PRIMARY 4 const NULL; Using where
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a=4 order by b desc;
|
|
|
|
a b c
|
|
|
|
4 400 400
|
|
|
|
4 40 400
|
|
|
|
alter table foo drop primary key;
|
|
|
|
alter table foo add clustering index clst_a(a,b);
|
|
|
|
explain select * from foo where a=4;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo ref clst_a clst_a 4 const NULL;
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a=4;
|
|
|
|
a b c
|
|
|
|
4 40 400
|
|
|
|
4 400 400
|
|
|
|
explain select * from foo where a>4;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo range clst_a clst_a 4 NULL NULL; Using where
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a>4;
|
|
|
|
a b c
|
|
|
|
5 50 500
|
|
|
|
5 500 500
|
|
|
|
6 60 600
|
|
|
|
6 600 600
|
|
|
|
explain select * from foo where a<3 order by a desc;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo range clst_a clst_a 4 NULL NULL; Using where
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a<3 order by a desc;
|
|
|
|
a b c
|
|
|
|
2 200 200
|
|
|
|
2 20 200
|
|
|
|
1 100 100
|
|
|
|
1 10 100
|
|
|
|
explain select * from foo where a>=4;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo range clst_a clst_a 4 NULL NULL; Using where
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a>=4;
|
|
|
|
a b c
|
|
|
|
4 40 400
|
|
|
|
4 400 400
|
|
|
|
5 50 500
|
|
|
|
5 500 500
|
|
|
|
6 60 600
|
|
|
|
6 600 600
|
|
|
|
explain select * from foo where a<=2 order by a desc;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo range clst_a clst_a 4 NULL NULL; Using where
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a<=2 order by a desc;
|
|
|
|
a b c
|
|
|
|
2 200 200
|
|
|
|
2 20 200
|
|
|
|
1 100 100
|
|
|
|
1 10 100
|
|
|
|
explain select * from foo where a=4 order by b desc;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo ref clst_a clst_a 4 const NULL; Using where
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a=4 order by b desc;
|
|
|
|
a b c
|
|
|
|
4 400 400
|
|
|
|
4 40 400
|
|
|
|
alter table foo drop index clst_a;
|
|
|
|
alter table foo add index (a,b);
|
|
|
|
explain select * from foo where a=4;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo ref a a 4 const NULL;
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a=4;
|
|
|
|
a b c
|
|
|
|
4 40 400
|
|
|
|
4 400 400
|
|
|
|
explain select * from foo where a>4;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo range a a 4 NULL NULL; Using where
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a>4;
|
|
|
|
a b c
|
|
|
|
5 50 500
|
|
|
|
5 500 500
|
|
|
|
6 60 600
|
|
|
|
6 600 600
|
|
|
|
explain select * from foo where a<3 order by a desc;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo range a a 4 NULL NULL; Using where
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a<3 order by a desc;
|
|
|
|
a b c
|
|
|
|
2 200 200
|
|
|
|
2 20 200
|
|
|
|
1 100 100
|
|
|
|
1 10 100
|
|
|
|
explain select * from foo where a>=4;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo range a a 4 NULL NULL; Using where
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a>=4;
|
|
|
|
a b c
|
|
|
|
4 40 400
|
|
|
|
4 400 400
|
|
|
|
5 50 500
|
|
|
|
5 500 500
|
|
|
|
6 60 600
|
|
|
|
6 600 600
|
|
|
|
explain select * from foo where a<=2 order by a desc;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo range a a 4 NULL NULL; Using where
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a<=2 order by a desc;
|
|
|
|
a b c
|
|
|
|
2 200 200
|
|
|
|
2 20 200
|
|
|
|
1 100 100
|
|
|
|
1 10 100
|
|
|
|
explain select * from foo where a=4 order by b desc;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2012-01-16 17:44:31 +00:00
|
|
|
1 SIMPLE foo ref a a 4 const NULL; Using where
|
2010-09-07 16:06:33 +00:00
|
|
|
select * from foo where a=4 order by b desc;
|
|
|
|
a b c
|
|
|
|
4 400 400
|
|
|
|
4 40 400
|
|
|
|
DROP TABLE foo;
|