10M のエントリを持つテーブルがあり、次のクエリがあるとします。
SELECT column_name, count(column_name)
FROM my_table
GROUP BY column_name
完了するまでに多くの時間がかかります。column_name に特定の範囲があることがわかっている場合、クエリをさまざまなクエリに分割します。それぞれが次のようになります。
SELECT column_name, count(column_name)
FROM my_table
WHERE column_name BETWEEN value_a AND value_b
GROUP BY column_name
対応を早くすることに成功しました。例えば、時間を調べてみると、それを10回のクエリに分割すると、1回のクエリで10倍程度速く応答します。
したがって、その範囲を課すと、クエリが高速になると思います。
ただし、同様のキーと列を持つ別のテーブルでは、これは当てはまりません。間があってもなくても、同じように時間がかかります。
注意すべき点は次のとおりです。
- 最初の DB は SQL 、2 番目の DB は IBM DB
- 最初のケースでは、クエリを実行するUIツールによって時間が測定され、2番目の時間はUnixで時間ごとに測定されます。
- 私は時間を比較しているのではなく、between を使用してクエリ時間を短縮できるかどうかに興味がありますか?
- column_name は主キーではありませんが、主キーの一部です (主キーは複数の列にあります)
それで、私の質問は、これが事実なのか、それとも本当に依存するのかということです. 「間」はクエリ時間を短縮しますか?