All pastes #248197 Raw Edit

Someone

public text v1 · immutable
#248197 ·published 2006-11-14 10:49 UTC
rendered paste body
mysql> create table betweentest (id integer unsigned not null auto_increment, start integer not null, end integer not null, primary key(id));

mysql> insert into betweentest (start, end) values (1,10), (10, 20), (20, 30), (40, 50), (50, 60);
Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM betweentest WHERE 25 BETWEEN start AND end;
+----+-------+-----+
| id | start | end |
+----+-------+-----+
|  3 |    20 |  30 | 
+----+-------+-----+
1 row in set (0.00 sec)

mysql> EXPLAIN SELECT * FROM betweentest WHERE 25 BETWEEN start AND end;
+----+-------------+-------------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table       | type | possible_keys | key  | key_len | ref  | rows | Extra       |
+----+-------------+-------------+------+---------------+------+---------+------+------+-------------+
|  1 | SIMPLE      | betweentest | ALL  | NULL          | NULL | NULL    | NULL |    5 | Using where | 
+----+-------------+-------------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.00 sec)

mysql> alter table betweentest ADD INDEX(start, end);
Query OK, 5 rows affected (0.02 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> EXPLAIN SELECT * FROM betweentest WHERE 25 BETWEEN start AND end;
+----+-------------+-------------+-------+---------------+-------+---------+------+------+-------------+
| id | select_type | table       | type  | possible_keys | key   | key_len | ref  | rows | Extra       |
+----+-------------+-------------+-------+---------------+-------+---------+------+------+-------------+
|  1 | SIMPLE      | betweentest | range | start         | start | 4       | NULL |    3 | Using where | 
+----+-------------+-------------+-------+---------------+-------+---------+------+------+-------------+
1 row in set (0.00 sec)