【问题标题】:Will Postgres automatically cache "active" records from a large table?Postgres 会自动缓存大表中的“活动”记录吗?
【发布时间】:2013-05-27 12:08:48
【问题描述】:

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

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

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

谢谢

【问题讨论】:

  • 真的可以提供更多关于这些记录如何“活跃”或不“活跃”的信息。

标签: postgresql caching postgresql-9.2 postgresql-performance


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-12
      • 2012-04-17
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多