2015-02-06 95 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