1

我有一个包含大量记录的表,但其中只有一部分在任何时候都是“活动的”,我的网络应用程序只需要引用这些记录。我有一个每晚运行的更新过程,它会添加新的(活动的)记录,并可能重新激活旧的记录。

postgres 是否能够确定它应该缓存活动记录?如果没有,我应该将活动记录移动到新表以帮助它 - 还是有其他方式给它一个“提示”?

更新 - 活动记录由名为 end_date 的日期时间字段中的 NULL 值指示

谢谢

4

2 回答 2

2

操作系统将缓存活动的和最近使用的磁盘块。PostgreSQL 主要依赖于操作系统磁盘缓存。但是,它自己shared_buffers也会缓存热页。

听起来这是一种非常迂回的说法,“我认为这些查询比它们应该的要慢”。考虑阅读http://wiki.postgresql.org/wiki/Slow_Query_Questionshttps://stackoverflow.com/tags/postgresql-performance/info

于 2013-05-31T15:54:31.950 回答
0

我不确定您所说的“活动记录”是什么意思,可能是我想念的 postgres 术语。如果您只是指名为“活动”的行,请在其上放置一个索引。这样postgres可以直接访问它们而无需逐行搜索,所以在某种程度上它就像一个缓存(每次你改变一行时重建)

于 2013-05-31T15:54:22.853 回答