什么存储类型(BTREE、RTREE、HASH)对于“from”和“to”来说是最好的(以及为什么)从这样的查询中获得最快的结果:
SELECT `title`, `from`, `to` FROM `table_name`
WHERE @year >= `from` AND @year <= `to`
@year 是要替换为数字的参数
和
所有数字(@year、from、to)都是浮点数。
PRIMARY KEY 或 UNIQUE 和覆盖索引将使用 BTREE 将最适合这种类型的查询。
ALTER TABLE ADD PRIMARY KEY ix1(from, to, title);
或者
ALTER TABLE ADD UNIQUE KEY ix1(from, to, title) USING BTREE;
对于覆盖索引,您首先添加在 where 子句中使用的列,然后是在 group 中使用的列,然后是在 order by 中使用的列,然后是在 select 中使用的列。
HASH index
最适合EQUAL
搜索,BTREE index
最适合range search
.