2011-09-07 57 views
0

我使用Django和jqGrid並通過AJAX加載頁面。有時,查詢非常複雜,頁面加載速度很慢,因爲遠端頁面要慢得多(這是可以預料的,結果通常超過100k個對象)。我認爲結果緩存將解決這個問題,增加一些時間來加載第一頁,但是隨後強烈加速後續頁面的加載。高效存儲Django緩存中的大表

相反,它使第一頁的加載非常慢,甚至後續頁面花費了大量時間(在標準PC上爲11s)。我正在使用locmem緩存後端。 任何想法?爲了進行比較,我嘗試將結果存儲在全局字典中,並且效果更好(後續頁面只需要1秒),但我聽說它不是一種安全的方式。

任何想法?

回答

0

你可以看看溫暖你的緩存。這可以手動完成,也可以使用像芹菜這樣的排隊框架,在後續頁面或查詢集的緩存在另一個頁面加載後在後臺進行。

看看johnny-cache,它可以實現透明的查詢集緩存。這可能(我重複,可能)解決您的所有問題。

+0

實際上,大部分問題都是由於無法有效地生成要存儲在緩存中的表而引起的。而且我不知道爲什麼從緩存中讀取速度很慢,但只有在一臺計算機上。 – janek37