4

10 列のテーブルがあり、それらのほとんどに対して組み合わせ範囲フィルターをサポートする必要があります。

たとえば、次のように言いましょう。

WHERE column_a >= a_min AND column_a <= a_max 
AND column_b >= b_min AND column_b <= b_max
...

しかし、それだけではありません。異なる列によるデータの並べ替えもサポートする必要があります。

私の質問は、検索を最適化するために作成する可能性のあるインデックスの組み合わせが膨大であることを考えると、どのオプションが考えられるでしょうか?

ありがとう!

4

2 に答える 2

4

各列のインデックスを個別に作成します。mysql にそれらの使用方法を理解させます。


また、補足として、between演算子を使用する習慣を身につけてください。

column_a between a_min AND a_max

それよりも:

column_a >= a_min AND column_a <= a_max -- ugly and the semantic is not as obvious

読みやすく、入力しやすく、まったく同じことを行います。

于 2011-08-23T04:16:50.137 に答える
0

クエリで使用されるすべての列のインデックスを作成します。

(列_a、列_n)

マルチパート インデックスの範囲アクセス方法を参照してください: http://dev.mysql.com/doc/refman/5.0/en/range-optimization.html

于 2011-08-23T04:51:41.843 に答える