2015-02-06 54 views
1

我有三个表 - CountriesUSRegionsRegions。对于不同的国家,Regions拥有该国领土的特定行政区划。对于美国这些都是50个州和华盛顿特区。所以再次:如何缓存sql查询,其结果永远不会改变?

Countries - USA, Germany, Japan etc. 
USRegions - Pacific, Middle Atlantic, South Atlantic (a total of 9 rows) 
Regions - Virginia, Texas etc., but also similar divisions for other countries, like regional cities for Poland etc. 

在我有一个表格视图,用户可以在其中选择某些美国地区和某些国家之一。所以为了显示这些名称,我对数据库进行了两次调用。一个表的所有行为USRegions表,另一个表的所有行为country_id = USA.idRegions表。事情是 - 这些调用的结果将永远是相同的(除非有新的状态,这是不太可能的,尽管possible)。那么有没有办法缓存这些电话,如果是 - 如何和在哪里?

+0

我的意思是50个州+华盛顿特区,我会纠正这一点。 – 2015-02-06 11:52:25

回答

1

如果再次遇到相同的查询,Rails会自动缓存SQL查询。这里是这个的参考链接。 SQL Caching。如果仍想缓存它,则可以使用Low Level Caching。使用基于密钥的缓存来完成这项工作。

+0

所以我想我需要使用低级缓存,因为我需要在请求之间缓存查询,而不是针对该特定请求缓存查询。 – 2015-02-06 11:50:08

+0

是的。当你在没有缓存的情况下查看控制台时,也要检查控制台,并且一次又一次地执行相同的查询,一旦它将加载,然后它将总是从缓存中加载。 – Deep 2015-02-06 12:12:56

相关问题