Se sabe que MySQL es uno de los manejadores de bases de datos más populares, tanto por su potencial como por ser gratuito. Aún cuando tienen la capacidad de manejar grandes bases de datos, es normal que debido al uso, llegue a tener tablas fragmentadas por la cantidad de escrituras y actualizaciones que reciben las tablas.
Sin embargo, esto puede ser resuelto con gestores gráficos de MySql (como phpMyAdmin), pero esto depende del administrador de la base de datos, que con frecuencia entre a revisar las tablas y en su caso optimizarla para eliminar esta fragmentación de las tablas.
El optimizar una tabla fragmentada, ayuda al sistema gestor de bases de datos a encontrar la información de cada tabla de forma más rápida, por lo que realizar este proceso con frecuencia ayudará a que no disminuya por este motivo, es decir la respuesa que dará la base de datos a las consultas será más eficiente.
También es posible automatizar esta optimización de las bases de datos de mysql, para que de manera cotidiana se realice esta tarea. Esta automatización se logra mediante el uso de los crontabs (en Unix, Linux, FreeBSD, etc.) y el comando mysqlcheck.
El crontab deberá quedar programado de la siguiente manera:
0 3 * * * /usr/bin/mysqlcheck -ao –auto-repair -u root -p(passwd_de_root_de_mysql) –all-databases > /dev/null
Este cron se ejecutará todos los días a las 3 de la mañana, realiza una optimización y repación de las tablas con el comando myqslcheck que se encuentra en /usr/bin.
Los argumentos le indican lo siguiente:
- -a analizar las tablas,
- -o optimizar las tablas,
- –auto-repair si la tabla analizada esta corrupta, la repara automáticamente,
- -u root el nombre de usuario de la base de datos, en este caso root para poder acceder a todas las bases de datos,
- -p(password_de_root_de_mysql) la contraseña del usuario.