Caso práctico para optimizar la velocidad de osCommerce
Publicado el: 10/10/2008 - 12:33Supongamos que tenemos una tienda en osCcommerce con las siguientes características:
- Número de pedidos > 15.000
- Picos de usuarios online > 300
- Referencias > 1000
- Nuestros clientes quieren que dejemos el módulo Best Sellers sin "trucar".
Entonces lo más seguro es que osCcommerce, irá, vulgarmente hablando "como el culo". Aquí os propongo una solución para un caso real, que cumplía las premisas anteriores.
¿Cachear las páginas? (Probado y no ha dado los resultados esperados). Podríamos instalar alguna herramienta para cachear nuestras páginas como la excelente page_cache, pero a la hora de ver la cesta, registrar usuario, o seguir el circuito lógico de comprar la página seguiría yendo igualmente lenta si tenemos un "Best Sellers".
De esta forma optimizamos la página para los mirones, pero los clientes seguirán notando una sitio lento. Además tendremos el inconveniente de no conocer si el producto está disponible o no en ese mismo instante, habiendo pequeñas fluctuaciones con el consiguiente enfado del usuario.
Analizar querys, con los debugs que propuso Jordi en su post, podemos conocer qué consultas son más lentas y cuales podríamos ahorrarnos.
En el caso práctico del que surge este post hemos realizado lo siguiente:
- Menú de categorías cacheado, no lo tocamos, salvo que se añadan nuevas categorías.
- Módulo top ventas cacheado, lo generamos mensualmente (al haber más de 15.000 compras, calcular los más vendidos puede ser algo tedioso).
- Hemos eliminado la búsqueda de impuestos, es decir el precio lo insertamos con IVA incluido y hemos eliminado todas las consultas que arrastraban la búsqueda del impuesto tep_get_tax_rate(). En los listados de categorías hemos llegado a ahorrar 50 consultas (un tep_get_tax para cada precio y para cada oferta); la ausencia de impuestos, la hemos resuleto en las facturas y albaranes con unos simples cálculos en PHP.
El resultado final ha sido excelente, pasando de más de 100 consultas en los listados de categorías a algo más moderado (30-50) y los tiempos de respuesta han pasado de 1-3s (en algunos casos) a 100 ms - 400 ms, algo más moderado.
Con esto las ventas diarías y compulsivas seguramente que van a crecer, porque cuando tardan en "despacharte" te vás aquí en Internet y en la calle.
Escribe un comentario
* = campos obligatorios