小编Pep*_*oen的帖子

优化 Postgres 中 20M 行的“最新”查询

我的表如下所示:

    Column             |    Type           |    
-----------------------+-------------------+
 id                    | integer           | 
 source_id             | integer           | 
 timestamp             | integer           | 
 observation_timestamp | integer           | 
 value                 | double precision  | 
Run Code Online (Sandbox Code Playgroud)

索引存在于 source_id、timestamp 以及时间戳和 id ( CREATE INDEX timeseries_id_timestamp_combo_idx ON timeseries (id, timeseries DESC NULLS LAST))的组合上

其中有 20M 行(好吧,有 120M,但是 20M,source_id = 1)。它有许多相同的条目,timestamp带有不同的observation_timestamp,它们描述了value发生在timestamp报告或观察到的事件observation_timestamp。例如,预测明天下午 2 点的温度与今天上午 12 点预测的一样。

理想情况下,该表可以很好地完成以下几件事:

  • 批量插入新条目,有时一次 100K
  • 选择观察到的时间范围数据(“1 月至 3 月的温度预测是多少”)
  • 选择从某个点观察到的时间范围观察到的数据(“我们在 11 月 1 日想到的对 1 月至 3 月的温度预测有何看法”) …

postgresql performance architecture

11
推荐指数
1
解决办法
549
查看次数

标签 统计

architecture ×1

performance ×1

postgresql ×1