上下文:
我想将一些临时结果存储在一些临时表中。这些表可能会在几个可能及时发生的查询中重用,但在某些时候,我正在使用的进化算法可能不再需要一些旧表并继续生成新表。将有几个查询,可能同时使用这些表。只有一个用户执行所有这些查询。我不知道这是否澄清了有关会话等的所有内容,我仍然不确定它是如何工作的。
目标:
我想做的是创建临时表(如果它们不存在),尽可能将它们存储在内存中,如果在某些时候没有足够的内存,删除那些将提交给硬盘(我猜这些将是最近最少使用的)。
例子:
客户端将对具有不同参数的EMA进行查询,并以不同的系数将它们聚合起来,每个人在使用的系数方面可能会有所不同,因此 EMA 的参数可能会重复,因为它们仍在基因库中,并且可能过一段时间就不需要了。会有更多参数的类似查询,遗传算法将为参数找到正确的值。
问题:
- 这就是“on commit drop”的意思吗?我看过有关会话和事务的描述,但我并不真正理解这些概念。对不起,如果这个问题很愚蠢。
- 如果不是,您是否知道让 Postgres 执行此操作的任何简单方法?
解决方法:
在最坏的情况下,我应该能够猜测我可以保留多少张表并尝试自己实现 LRU,但它永远不会像 Postgres 那样好。
非常感谢。