Heroku数据库缓存

时间:2013-01-15 09:24:32

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

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

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

User.find(10)
例如,

然后会保存查询结果吗?从而提高数据库查询的性能?

1 个答案:

答案 0 :(得分:3)

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

缓存的大量RAM对PostgreSQL性能产生巨大影响,尤其是在像Amazon EC2这样的I / O性能较差的设置上。

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