Pregunta

Uso Django con jqGrid y cargando páginas a través de AJAX.A veces, las consultas son muy complejas y la carga de la página es muy lenta, para las páginas lejanas es mucho más lenta (lo cual es de esperar, los resultados a menudo superan los 100k objetos).Pensé que el almacenamiento en caché de resultados resolvería el problema, agregando algo de tiempo a la carga de la primera página, pero luego acelerando fuertemente la carga de las páginas siguientes.

En cambio, hizo que la carga de la primera página fuera increíblemente lenta e incluso las páginas siguientes llevaban mucho tiempo (11 segundos en una PC estándar).Estoy usando el backend de caché locmem. ¿Algunas ideas?Intenté, para una comparación, almacenar los resultados en un diccionario global y eso fue MUCHO mejor (las páginas siguientes solo toman 1 s), pero escuché que no es una forma segura.

¿Alguna idea?

¿Fue útil?

Solución

Podría considerar calentar su caché.Esto se puede hacer manualmente o usando un marco de cola como el apio para que el almacenamiento en caché de las páginas o conjuntos de consultas posteriores ocurra en segundo plano después de que se cargue otra página.

Eche un vistazo a johnny-cache, que hace un almacenamiento en caché transparente de conjuntos de consultas.Esto puede (repito, puede ) resolver todos sus problemas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top