Postgres会自动从大表中缓存“活动”记录吗?

时间:2013-05-31 15:48:33

标签: postgresql caching postgresql-9.2 postgresql-performance

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

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

UPDATE - 在名为end_date的日期时间字段中具有NULL值来指示活动记录

由于

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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