2012-04-30 27 views
1

目前我正在使用Memcache來存儲我的php pdo mysql查詢,它的工作方式與預期的一樣。緩存大量mysql查詢的最佳方法?

但是,我想創建一個約50,000網址的單頁網站地圖,並認爲我可能需要一種不同的方式來緩存此查詢。理想情況下,我只想每天執行一次查詢,並認爲在這段時間內在內存緩存中保留50,000個ID和標題將會完全浪費空間?

將文件gzip壓縮成某種臨時.txt文件會更好嗎?或完全不同的方法?

+2

爲什麼不在實際的站點地圖文件中「緩存」這些鏈接?如果它只是每天構建一次,那麼在緩存開銷方面就沒有意義。緩存是用於構建數據的頻繁訪問/昂貴的。 –

+0

取決於您,您還可以考慮像Mongo這樣的輔助數據庫,或像Solr這樣的搜索數據庫。 – Petah

回答

1

我同意與Marc的評論。每天生成一次文件,也許使用cron作業。

我是指你這種說法大約sitemaps,你應該考慮:

網站地圖文件有50,000個網址和每 網站地圖10兆字節的限制。可以使用gzip壓縮站點地圖,從而減少帶寬消耗。

目前,我在我的生成網站地圖動態,但在切換到一個cron作業是我做的名單上。

+1

如何創建一個包含結果的時間戳的站點地圖文件的PHP函數,然後使用查詢來檢查文件的時間戳,如果它早於1天,那麼使用新的查詢重建文件,如果年輕的話只加載結果,壓縮該文件也很簡單。也可能md5緩存文件名,所以它不容易公開查看。 – Dan