我们可以让postgres为特定的表使用缓存,并且根本不用于少数表吗?我们可以让postgres为特定的表使用缓存吗?
回答
不,您无法控制将要缓存的内容。
但是,如果这是一个频繁访问的表,它将被缓存。如果不经常访问它,它不会被缓存。
所以我没有看到试图控制这个的原因。
你不能那样做。 PostgreSQL本身就很好地维护它。事实上,我想不出你想修改这种行为的情况。
如果您发现问题(例如使用太多缓存的表),则可能意味着该表无效(例如,使用seq扫描进行查询)。如果某些表使用很少的缓存,则可能是因为只有很少的最佳缓存,或者因为总缓存大小太小。无论哪种方式,PG都尽其所能。
究竟是什么让你问这个问题?
PostgreSQL 和操作系统会做得更好。你不使用的数据,不会在缓存中,数据你做使用,是在缓存中。你不想打你的数据库和操作系统,这是没有必要的。
为了读取数据并对其进行操作,PostgreSQL必须将其放入缓存中。这样做也会暂时将其暂时存放在操作系统缓存中。一旦进程在我的Inside the PostgreSQL Buffer Cache讨论中停止使用它,您可以找到有关数据最终如何从数据库的缓存中逐出的确切说明。
通过减小shared_buffers参数的大小,您可以从缓存中更快地逐出,这可能会导致性能下降。 PostgreSQL始终使用OS缓存进行读取,并且无法防止在访问大量数据时受到污染。
对顺序扫描进行了优化,可以使数据库自己的shared_buffers缓存不被该数据接管。大于(shared_buffers/4)的表仅限于在数据库端使用少量内存。尽管如此,这些仍然会对操作系统缓存产生影响,但这些缓存往往会比数据库所需的时间更少。
为什么不使用pgfincore将表存储在OS缓存中?
流动的博客显示如何使用它。 http://francs3.blog.163.com/blog/static/4057672720107541611270/
- 1. 我们可以让Emacs缓冲区为静态/固定?
- 2. 我们可以为特定版本启用游戏中心吗?
- 3. 我可以从Firefox缓存中删除特定文件吗?
- 4. 我们可以使用SQLAlchemy获取postgres数据库转储吗?
- 5. 我们可以以编程方式缓存谷歌地图吗?
- 6. 我们可以为wordpress创建表吗?
- 7. 我可以用php缓存吗?
- 8. 我可以使用artifactory作为本地npm缓存吗?
- 9. 我们可以在iPhone上缓存解析的XML数据吗?
- 10. 在插入的运行时查询数据:我们可以使用缓存吗?
- 11. 可以/我应该使用ConcurrentMap和我自己的缓存吗?
- 12. 我可以在CakePHP的行为中使用特定模型吗?
- 13. 我们可以让Emacs找到变量的定义吗?
- 14. URL变量和PHP重定向,它们可以被缓存吗?
- 15. 我可以使用Magento的缓存层作为键/值存储吗?
- 16. 我们可以使用HDFS来存储git存储库吗?
- 17. 鱿鱼 - 我可以使用url清除squid缓存中的缓存对象吗?
- 18. 我可以只使用worksheet_change作为特定列吗?
- 19. 我可以关闭.ivy缓存吗?
- 20. 我可以缓存jquery .map文件吗?
- 21. 我可以绕过OpenCL缓存吗?
- 22. 我可以使用Varnish使任意缓存条目无效吗?
- 23. 我可以使用Spring的缓存功能吗?
- 24. 我们可以使用AJAX和XHTML吗?
- 25. 我们可以显示特定DIV的adMob广告吗?
- 26. 我们可以在java中设置特定的时间吗
- 27. 我可以使用AccountManager让用户使用他们的Google帐户登录吗?
- 28. 我可以将我的表格存储调用缓存在天蓝色中吗?
- 29. 我可以让std :: string使用更少的内存吗?
- 30. 我们可以使用自定义卡支付使用ApplePay吗?
seq扫描不一定会将表的数据放入共享缓冲区。我认为有一个阈值(以表的行数的百分比表示),行之外不会进入共享缓冲区 - 但我可能会误会 – 2011-02-15 19:12:25