大きなテーブルをDjangoキャッシュに効率的に保存する
-
27-10-2019 - |
質問
jqGridでDjangoを使用し、AJAXを介してページを読み込んでいます。クエリが非常に複雑で、ページの読み込みが非常に遅い場合があります。これは、遠いページの方がはるかに遅いためです(予想されることですが、結果は多くの場合10万オブジェクトを超えます)。結果のキャッシュによって問題が解決し、最初のページの読み込みに時間がかかると思いましたが、その後、後続のページの読み込みが大幅に加速されます。
代わりに、最初のページの読み込みが非常に遅くなり、後続のページでさえ多くの時間がかかりました(標準のPCでは11秒)。locmemキャッシュバックエンドを使用しています。 何か案は?比較のために、結果をグローバル辞書に保存しようとしましたが、それははるかに優れていました(後続のページは1秒しかかかりません)が、安全な方法ではないと聞きました。
何かアイデアはありますか?
解決
キャッシュをウォームアップすることを検討できます。これは手動で行うことも、セロリなどのキューイングフレームワークを使用して、後続のページまたはクエリセットのキャッシュを別のページの読み込み後にバックグラウンドで実行することもできます。
透過的なクエリセットキャッシングを行うjohnny-cacheを見てください。これにより(繰り返しますが、 )すべての問題が解決する可能性があります。
所属していません StackOverflow