次のようなクエリから最速の結果を得るには、「from」と「to」に最適なストレージタイプ(BTREE、RTREE、HASH)(およびその理由)を次に示します。
SELECT `title`, `from`, `to` FROM `table_name`
WHERE @year >= `from` AND @year <= `to`
@yearは、数値に置き換えられるパラメーターです。
と
すべての数値(@year、from、to)は浮動小数点数です。
このタイプのクエリには、PRIMARYKEYまたはUNIQUEおよびカバーリングインデックスがBTREEを使用するのが最適です。
ALTER TABLE ADD PRIMARY KEY ix1(from, to, title);
また
ALTER TABLE ADD UNIQUE KEY ix1(from, to, title) USING BTREE;
インデックスをカバーするには、最初にwhere句で使用される列を追加し、次にgroup byで使用される列を、order byで使用される列、次にselectで使用される列を追加します。
HASH index
EQUAL
検索に最適であり、BTREE index
に最適ですrange search
。