Pages Menu
TwitterRssFacebookLinkedIn Yago GonzálezGPlus Yago GonzálezPinterest Yago González
Categories Menu

Posted by on 24 dic, 2013 in Informática | 0 comments

Cambiando motor de las tablas de OsCommerce

Cambiando el motor de las tablas de osCommerce

Cambiando el motor de las tablas de osCommerce

Era un paso que teníamos que dar. Nos costó bastante decidirnos, pese a que era algo que sabíamos que tarde o temprano nos iba a dar problemas, como así acabó sucediendo.

Hace un par de semanas, un día cualquiera, un proceso cotidiano del programa de gestión de almacén nos tumbó la web. No fue algo excesivamente grave, ya que 20 segundos después la web estaba en marcha y sin problemas, pero fue la gota que colmó el vaso y que nos decidió a cambiar el motor de las tablas de MySQL.

El problema era que el motor que viene por defecto en osCommerce, MyISAM, es bastante más rápido a la hora de realizar consultas de lectura, pero por contra bloquea una tabla durante el tiempo que tarda en hacer una consulta, y si es una tabla gigantesca que tiene en cola 135 consultas esperando acceder a esa misma tabla, tenemos un problema y como consecuencia la web se bloquea. Una vez matada la consulta “bloqueante” todo vuelve a la normalidad, pero… ¿hasta cuándo? y peor aún ¿si no estamos ahí para darnos cuenta?

Así que decidimos cortar por lo sano, y recomendados por el responsable de nuestros servidores, pasamos a usar InnoDB. Para ello preparamos un batería de tests y pruebas que pasamos antes y después del cambio de motor en nuestros servidores locales y luego en preproducción. Pese a que había riesgo con los joints entre tablas, la inmensa cantidad de ellos en nuestro código no nos permitía analizar uno a uno detenidamente, motivo por el que optamos por pasar esta batería de pruebas, bastante completa eso sí.

Una vez comprobado en preproducción que todo iba como se esperaba, teclado en mano y con los ojos pegados, a las 5.00 de la mañana – cuando apenas hay visitantes – nos armamos de valor y empezamos con el backup de la base de datos e inmediatamente después con el cambio de motor de tablas. Primero las más pesadas de una en una y luego las más ligeras en grupo, con objeto de no penalizar el rendimiento de aquellos – pocos – valientes que anduvieran a horas tan intempestivas haciéndonos una visita. En poco más de una hora y media ya teníamos  todo cambiado y la batería de tests pasada. Ningún error, ningún inconveniente, nada extraño. ¿Raro, verdad? Pues es verdad, esta vez Murphy estuvo de nuestro lado.

Los resultados que hemos obtenido son los esperados, ningún bloqueo de tablas a costa de un rendimiento un poco peor en un 10% de los casos, cosa que esperamos solucionar en breve dividiendo en partes las dos o tres tablas mastodónticas que tenemos. En unos días – o semanas- os contaré cómo ha ido esta división también. Os animo a que lo leáis entonces, pero mientras, os dejo un par de enlaces para quien quiera profundizar en el tema:

 

Yago González
Diseño, Analítica, Ecommerce, Marketing Online, Tecnología y sobre todo Internet. Estos son los campos en los que me muevo día a día, tratando de adaptarme a sus continuos cambios, aprendiendo y enseñado cada día.

Yago González – who has written posts on Diseño, marketing, tecnología: el blog de Yago González.


Post a Reply

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>