在postgreSQL中实现常规系列

时间:2016-04-13 15:17:31

标签: postgresql postgresql-performance

我们假设我有下表:

time| id| value
   1|  1|     1
   3|  1|     1
   1|  2|     2

选择常规系列的结果将是:

time| id| value
   1|  1|     1
   2|  1|  Null
   3|  1|     1
   1|  2|     2
   2|  2|  Null
   3|  2|  NUll

通常情况下,我要么只存储NULL值,要么另外创建两个表:一个持有所有时间,一个表持有所有ID,然后加入。

第一种方法的问题是表变得非常大,因为每个新的id都会强制我为之前的所有时间插入NULL值,每次新的时间都会强制我为所有id插入NULL值。

第二种方法的问题是连接时间太长。

我的想法是实现自定义集返回函数,如contrib\tablefunc中的交叉表示例。

我的问题是,我是否可以期待这更快。

0 个答案:

没有答案