El otro día tras subir un montón de galerías me di cuenta de lo lenta que iba la chupigallery.
Me puse a investigar, a poner debugs, timers, y a ejecutar con explain’s los queries que tardaban demasiado en ejecutarse (¡¡¡algunos más de 4 segundos!!!). Creé algunos índices que faltaban en la base de datos, cambié algun query, que por ejemplo hacía un ‘group by’ de una clave que no pertenecía a la tabla principal, e impedía el uso de los índices de la misma, etc…
Para colmo se estaban haciendo más queries de los necesarios. Se pedía información de visitas de las galerías y catálogos cuando sólo se pretendía mostrar una foto, que no muesta nada de eso. Aún se puede optimizar un poquito, que se siguen pidiendo demasiados datos de galerías, pero ya está mucho mejor.
Al final, ahora todas las páginas cargan en bastante menos de 1 segundo. Algunos joins siguen siendo lentos, y no consigo que bajen de 0.40 segundos, pero la mejora de velocidad es muy notable.
De todas formas me ha parecido muy lento en general el mysql con joins de tablas. Estamos usando la versión 4.0.13, y no se si probar con la 4.1, por que en la beca últimamente con un SQL Server no se hace otra cosa que jugar con queries enormes llenas de joins y demás parafernalia, y no van tan lentas… Si mysql no mejora en esto me da que no va a poder llegar a mucho en el mundo empresarial. Y no estamos hablando de una base de datos enorme… la chupigallery sólo tiene a fecha de hoy 21.406 fotografías.