在查看来自Mongrel的日志的过程中,我发现了一些我想要优化的SQL语句。在研究这些内容时,我注意到这些条目有时会在它们前面有CACHE,例如:
CACHE (0.0ms) SELECT * FROM `customers` WHERE (`customers`.`id` = 35)
考虑到执行时间,我假设Mongrel真的在缓存这些数据。我的问题是这是如何配置的?我无法在网上找到有关模型数据缓存的信息;我读过的大部分内容都与缓存静态页面或页面片段有关。我没有做任何明确的事情来启用这个缓存,所以我真的只是寻找一个关于它如何配置以及它是如何工作的指针。提前谢谢!
答案 0 :(得分:1)
实际上与杂种无关。默认情况下,Rails围绕每个控制器操作执行ActiveRecord::Base.cache
。这意味着在该操作的范围内,它将缓存查询结果并提供缓存中的结果,而不是再次访问数据库。您应该在日志中(在同一操作中)看到一个相同的查询,该查询不以CACHE作为前缀,CACHE是已存储结果的原始查询。
更多细节here。