【问题标题】:Heroku DB CacheHeroku 数据库缓存
【发布时间】:2012-12-29 08:43:43
【问题描述】:

在起重机上Heroku DB plans 上,缓存不是 0 字节。

这是否意味着在这些计划中如果代码有

User.find(10)

例如,那么查询的结果会被保存吗?从而提高数据库查询的性能?

【问题讨论】:

  • 链接到有问题的 Heroku 文档?
  • 添加了数据库计划的链接

标签: database ruby-on-rails-3 postgresql caching heroku


【解决方案1】:

PostgreSQL 没有查询结果缓存。除非 Heroku 在他们的自定义内部 PostgreSQL 分支中添加了一个(非常不可能),否则它很可能是数据库可用的磁盘缓存,用于存储从磁盘读取的表和索引的内容,因此不必重新读取它们。再次访问。这是块级缓存,不是查询级或行级缓存。

大量用于缓存的 RAM 会对 PostgreSQL 的性能产生巨大影响,尤其是在 I/O 性能较差的设置(如 Amazon EC2)上。

一些应用程序级工具,如 Hibernate ORM 和其他 JPA 实现确实维护查询结果缓存,或者更确切地说是实体缓存。我不知道 ActiveRecord 是否这样做,但如果这样做,它将在应用程序服务器端,而不是数据库端。

【讨论】:

  • 谢谢,所以基本上你的意思是缓存是数据库机器上的 RAM?
  • 这就是我的期望和理解,但我无法明确确认。我不知道是shared_buffers + effective_cache_size、总物理内存还是什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-20
相关资源
最近更新 更多