Uno de los problemas que nos encontramos todos los días en Informax son los derivados de la velocidad de las páginas. Parámetros como el tiempo de primer byte, tiempo de carga de la página completa seguramente os suenan a todos vosotros. Para los que no os suene, simplemente deciros que el tiempo de primer byte es el tiempo que tarda entre que se hace una petición y el servidor responde con los datos, mientras que el tiempo de carga de la página completa, es el tiempo que se tarda desde que se hace la petición, hasta que todos los elementos de la página están cargados.
También hay un factor que muchos de vosotros seguro que habéis sufrido, el aumento de tiempo de carga según pasa el tiempo. Con la tienda recién montada y 100 productos todo iba como la seda, pero 6 meses más tarde con 10000 productos, los tiempos se han disparado y la web parece que se mueve a paso de tortuga.
Esto puede ser debido a varios factores, al aumento de módulos instalados, y si, sabemos que no podéis resistiros, pero la mayoría de las veces, menos es más, al número de productos que mostráis en cada pantalla, a la velocidad de la base de datos, etc.
A este último es al que vamos a prestar atención hoy. Todas las bases de datos se degradan con el tiempo, haciendo que su rendimiento caiga en picado. Uno de los parámetros que podemos corregir en la base de datos en lo que llamamos motor de almacenamiento (storage-engine). El motor lo podemos definir como al sistema que gestiona la base de datos, que se encarga de extraer, guardar, actualizar los datos.
En MySql los motores más usados son MyISAM e InnoDB. Cada uno de ellos tiene sus ventajas e inconvenientes, ya que su forma de trabajar es distinta.
MyISAM tiene la siguientes características:
- Más antiguo que InnoDB
- Motor que MySql usa por defecto
- Mas rápido para las consultas de obtención de datos (Consultas SELECT)
- No tiene control de transacciones.
- No hace controles de integridad referencial
- No soporta claves foráneas
InnoDB por su parte tiene las siguientes
- Permite las consultas agrupadas por transacciones
- Bloqueo automático de registros
- Mejora los métodos para asegurar la integridad de las tablas
- Mas rápido en consultas de creación y/o modificación de datos (INSERT y/o UPDATE)
- Permite las claves foráneas
- Permite control de integridad referencial
Después de todo este rollo os preguntareis que cual es mejor, pues como casi siempre en informática, depende. En principio MyISAM es más rápido en plataformas como prestashop, donde normalmente se realizan más consultas de solicitud de datos que inserciones o modificaciones. Ahora, como siempre, viene el pero, pueden existir módulos para los que sean necesarias las tablas en formato InnoDB. Si este es tu caso, no te queda más remedio que trabajar con este motor, en caso contrario, te recomendamos que lo cambies a MyISAM.
Desde Informax hemos realizado un módulo con el que podréis cambiar el motor fácilmente, aunque como siempre que realicéis algún cambio en base de datos, es mejor hacer una copia de seguridad, que lamentaros más tarde.
Como es navidad, este modulo lo podreis descargar completamente gratis.
Modulo para Cambiar el formato de la Base de datos en Prestashop (1102 descargas )
Hemos probado el modulo en un cliente nuestro y un proceso que tardaba mas 356 segundos ahora lo hace en 96 segundos increible. En breve publicaremos otro post que es un poco más complejo y tiene que ver con las chacheses
Hola pueden porfavor indicarme como puedo descargar el modulo ? gracias