Question

J'utilise Django avec jqGrid et les pages de chargement via AJAX. Parfois, les requêtes sont très complexes, et le chargement de la page est lente ver, pour les pages lointaines est beaucoup plus lent (ce qui est à prévoir, les résultats dépassent souvent 100k objets). Je pensais que la mise en cache de résultat résoudre le problème, en ajoutant un peu de temps au chargement de la première page, puis accélérer fortement le chargement des pages suivantes.

Au lieu, il a fait le chargement de la première page des pages incroyablement lentes et même ultérieures prennent beaucoup de temps (11s sur un PC standard). J'utilise backend cache locmem. Des idées? J'ai essayé, pour une comparaison, le stockage des résultats dans le dictionnaire global et qui était beaucoup mieux (les pages suivantes ne prennent que 1s), mais je l'ai entendu dire que ce n'est pas un moyen sûr.

Toutes les idées?

Était-ce utile?

La solution

Vous pourriez regarder le réchauffement de votre cache. Cela pourrait se faire manuellement ou à l'aide d'un cadre de mise en file comme le céleri pour avoir la mise en cache des pages suivantes ou QuerySets se produisent en arrière-plan après l'autre chargement de la page.

Jetez un oeil à johnny-cache, qui ne cache queryset transparent. Cela peut (je le répète, peut ) résoudre tous vos problèmes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top