Jorge Arnal Posted February 26, 2013 Share Posted February 26, 2013 Buenas a todos. Tenemos la tienda ya en producción, con la versión 1.5.3.1. No me puedo quejar de la velocidad de carga conseguida, y la optimización a través del Pagespeed de Google. Pero hemos detectado algo curioso... No sé si os ha pasado. La anterior versión (1.4.9) tenía varios problemas en velocidad (hablo de nuestra web anterior, no de la versión), pero el "waiting" de las páginas, que me imagino que es cuando las consultas a las SQL se realizan, era ínfimo. Ahora mismo, por poneros un ejemplo, las fichas de producto tienen ¡hasta 2 segundos de espera! Sólo la consulta se come casi todo el tiempo de carga. En una tienda con muchos productos veo normal que algo tarde, pero me chirría un montón, sinceramente. Si pudiéramos solucionar ese problema, sería un gran paso para SEO y experiencia de usuario. Sé que la versión está habilitada para multi-tienda y eso aumenta las consultas. Pero... ¿¿Tanto??? Tengo cache, código minimizado y órdenes htaccess para cachear a muerte los scripts y los css. ¿A alguien más le ha pasado? ¿sabéis si hay alguna forma de optimizar este punto? ¡Gracias por leerme! Link to comment Share on other sites More sharing options...
joseantgv Posted February 27, 2013 Share Posted February 27, 2013 Has activado el debug de sql a ver si hay alguna query que tarde más de lo normal? Link to comment Share on other sites More sharing options...
app rental online Posted February 27, 2013 Share Posted February 27, 2013 No se si para acelerar las consultas del mysql te puede servir, pero ¿has pensado en utilizar un CDN o Cloudflare? También puedes mirar a ver si se puede cambiar el motor del mysql a Innodb (no se si lo tendrás como myisam) o incluso cambiar el modo de ejecución del php como fastcgi (por probar cosas ) Un saludo! Link to comment Share on other sites More sharing options...
Jorge Arnal Posted February 27, 2013 Author Share Posted February 27, 2013 ¡Gracias por vuestras respuestas! No se si para acelerar las consultas del mysql te puede servir, pero ¿has pensado en utilizar un CDN o Cloudflare? También puedes mirar a ver si se puede cambiar el motor del mysql a Innodb (no se si lo tendrás como myisam) o incluso cambiar el modo de ejecución del php como fastcgi (por probar cosas ) Un saludo! Los CDN y media servers los dejo para cuando realmente haya un tráfico importante que recargue mi server. De momento tengo una carga de 2 segundos, 94 en pagespeed (en segunda carga, cacheando a muerte). Lo he pensado, sí, pero no creo que eso mejore las queries... Pero el tema del motor del sql voy a preguntar, porque es cierto que para la nueva versión lo tengo cambiado! Igual es cosa del Innodb, ¡muchas gracias! Lo miro y cuento, porque ya he visto varios post con este tema e igual a alguien le sirve... Has activado el debug de sql a ver si hay alguna query que tarde más de lo normal? No lo he activado, porque al estar en producción no sé si existe algún problema, y no sé muy bien su funcionamiento... Si se activa, los logs y registros de queries se ven en el FO? Gracias por la sugerencia, la verdad es que este punto me tiene rallado... Es mucho tiempo (comparando con la anterior versión!) ¡Gracias a los dos de nuevo! Link to comment Share on other sites More sharing options...
joseantgv Posted February 27, 2013 Share Posted February 27, 2013 No lo he activado, porque al estar en producción no sé si existe algún problema, y no sé muy bien su funcionamiento... Si se activa, los logs y registros de queries se ven en el FO? Gracias por la sugerencia, la verdad es que este punto me tiene rallado... Es mucho tiempo (comparando con la anterior versión!) ¡Gracias a los dos de nuevo! Sí, se te verá una ristra de queries y cosas raras a la vista de un usuario! Lo que puedes hacer es poner la tienda 1 minuto en mantenimiento y cargar la home y una página de producto, no cerrar las páginas y volver a activar la tienda. Y posteriormente las analizas.. Yo me he encontrado con problemas de rendimiento con tiendas con muchísimos productos, sobretodo cuando realiza queries con ORDER By RAND() que son muy ineficientes. 1 Link to comment Share on other sites More sharing options...
Jorge Arnal Posted February 27, 2013 Author Share Posted February 27, 2013 BIG IDEA. Pruebo y veo. Order By Rand() es exactamente... Ordenar elementos en Random? Es decir, queries relacionadas con las product list, etc? Perdona mi ignorancia, la programación es un mundo muy basto pa un tio de Marketing XD. ¡Merci por la ayuda! Link to comment Share on other sites More sharing options...
joseantgv Posted February 27, 2013 Share Posted February 27, 2013 Exacto! Hay módulos que muestran X números de productos sin importar el orden, y como mysql va a devolver los productos con algún orden preestablecido hay que "mezclarlos" ordenándolos aleatoriamente para que no se repitan. 1 Link to comment Share on other sites More sharing options...
Jorge Arnal Posted March 10, 2013 Author Share Posted March 10, 2013 Bueno, ya he terminado de optimizar, y EFECTIVAMENTE había unas queries en algunos módulos, que hacían que la carga se fuera de las manos. Pongo las tres cosas que más han hecho que optimice mi carga, por si a alguno le sirve: - En primer lugar, el módulo de destacados en la home, por pestañas, que compré en addons. En la pestaña ofertas las ordenaba en random, y conseguí bajar hasta 1 segundo (:S). - Después, para mi el mas importante. Es muy curioso que nadie haya abierto algún tema para comentar el funcionamiento del módulo productos de la misma categoría en las fichas de producto. Según el funcionamiento, carga ¡30 productos!. En mi caso, al modificar el diseño, se me olvidó cambiar también la parte en la que calcula el width del módulo, cargando igualmente 30 productos, pero sólo mostrando un máximo de 8. Tampoco creo que la usabilidad del site mejore con 30 productos relacionados, y más en un motor que no se basa en el comportamiento de otros usuarios o en el mismo, sino que recupera otros productos simplemente. Bajándolo a 10 productos, y poniendo correctamente el width, me bajo MUY considerablemente el tiempo de carga. - Por último, el módulo zopim de chat en la tienda. El tiempo de carga se sale de madre con él implementado... Ya me he puesto en contacto con ellos para que modifiquen su botón "clic to chat", y que no abra simplemente el chat, sino que sea en ese momento cuando se cargue el script. Ya me han dicho que les mola y van a implementarlo en un tiempo. De esta forma se optimiza la experiencia de usuario, pero sin afectar a la carga de la página. La diferencia, en mi caso, era de 2 a 3 segundos extras (al cargar la script de ponerlo en español además de la script que trae por defecto). Si a esta le sumabas las redes sociales... Un caos. En fin, muchas gracias por vuestra ayuda, he conseguido que vaya "como un tiro". De todas formas, sigo pensando que esta versión de prestashop, no se por qué, pero tiene un tiempo mayor de carga. Simplemente por el hecho de ser 1.5.3. A ver si se consigue optimizar en futuras versiones, que la 1.4.9 iba rapidísima! He comprobado que el Time to First Byte es muy muy muy superior al normal... Y creo que no me he dejado nada por optimizar. Un saludo, y gracias 1 Link to comment Share on other sites More sharing options...
Recommended Posts