MySql中数值范围的最佳索引类型

时间:2012-07-24 14:12:27

标签: mysql indexing

哪种存储类型(BTREE,RTREE,HASH)最适合(和为什么)“from”和“to”以从这样的查询中获得最快的结果:

SELECT `title`, `from`, `to` FROM `table_name`
WHERE @year >= `from` AND @year <= `to`

@year是要用数字替换的参数

所有数字(@year,from,to)都是浮动的。

1 个答案:

答案 0 :(得分:0)

使用BTREE的PRIMARY KEY或UNIQUE和覆盖索引最适合此类查询。

ALTER TABLE ADD PRIMARY KEY ix1(from, to, title);

ALTER TABLE ADD UNIQUE KEY ix1(from, to, title) USING BTREE;

对于覆盖索引,首先添加在where子句中使用的列,然后在group中使用的列中按列顺序使用,然后在select中使用列。

HASH index最适合EQUAL次搜索,BTREE index最适合range search