2016-10-04 10 views
-2

との任意の列が実効的にグループIは50列(1つのタイムスタンプと他のエンティティのパラメータ)を持つ一つの大きなテーブル(約1万レコード)を持っているし、私のようなクエリを作りたい:のPostgreSQL:タイムスタンプ

select param_name, count(*) 
from big_table 
where timestamp > {{start}} and timestamp < {{end}} 
group by param_name 

ので、できるだけ早くこのクエリを実行する方法は?時間制限は任意でよい。私はPostgreSQLを使用しています。

今私は50のINDEXの種類(タイムスタンプ、param_name)を作ることを考えています。しかし、それは巨大なインデックスを提供することができます。

もっと良い解決策はありますか?

+0

https://wiki.postgresql.org/wiki/Slow_Query_Questions –

答えて

0

50列の100万レコードは特に大きいわけではありません。

私はbig_table(timestamp, param_name)の明白なインデックスから始まり、それがどのように動作するかを見ていきます。

実際には、多くの場合、特に少数の行を集約しようとする場合は、big_table(time_stamp)のインデックスで十分です。

関連する問題