哪种存储类型(BTREE,RTREE,HASH)最适合(和为什么)“from”和“to”以从这样的查询中获得最快的结果:
SELECT `title`, `from`, `to` FROM `table_name`
WHERE @year >= `from` AND @year <= `to`
@year是要用数字替换的参数
和
所有数字(@year,from,to)都是浮动的。
答案 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
。