postgresql - 每个表/数据库的缓存偏好设置

postgresql - 每个表/数据库的缓存偏好设置

我很好奇是否有任何方法可以提示 postgresql 哪些数据应该更可能缓存在内存中。在我的场景中,服务器将处理大多数读取流量,整个数据集比可用内存大得多,但一些表[不一定是最常访问的]应该存储在内存中,而其他表不需要高性能并且可以从磁盘访问。

我知道 memcached 或类似的东西可以作为合理的解决方法,但也许没有它一切都可以完成。

这个问题是否更适合 stackoverflow?

答案1

没有办法提示 PostgreSQL 有关您的缓存的信息。在大多数情况下,您不需要这样做 - 最常用的表部分将被缓存。它并不像“这个表最常用,让我们缓存这个表”那么简单,它确实考虑了其他因素。(例如,仍然不允许对大型表进行顺序扫描以耗尽整个缓冲区缓存)

您可以采取的一种解决方法是将热表放在不同的表空间中,挂载到不同的分区上,并调整该分区的操作系统缓存参数(当然,如果在操作系统级别上可行的话)。PostgreSQL 相当依赖操作系统级别的文件系统缓存,因此如果您可以根据自己的需要对其进行调整,那么就可以解决您的问题。

相关内容