-1

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 は主キーではありませんが、主キーの一部です (主キーは複数の列にあります)

それで、私の質問は、これが事実なのか、それとも本当に依存するのかということです. 「間」はクエリ時間を短縮しますか?

4

1 に答える 1