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