我有一个大表(大约100万条记录),有50列(一个时间戳和其他实体的参数),我想进行如下查询:
select param_name, count(*)
from big_table
where timestamp > {{start}} and timestamp < {{end}}
group by param_name
那么我怎样才能尽快执行这些查询呢?时间限制可以是任意的。我正在使用PostgreSQL。
现在我正在考虑制作50种INDEXes(timestamp,param_name)。但它可以提供巨大的指数。
有没有更好的解决方案?
答案 0 :(得分:0)
有50列的100万条记录并不是特别大。
我将从big_table(timestamp, param_name)
上的明显索引开始,看看它是如何工作的。
实际上,big_table(time_stamp)
上的索引在很多情况下都是足够的 - 特别是,如果你只是想总结一小部分行。