•
Uso de mk-find para realizar analyze y optimize de las tablas MySQL
Tal como se ha comentado anteriormente, existen varios comandos para el mantenimiento de las tablas MySQL. Hoy vamos a ver como combinar mk-find con un shell script para realizar mediante cron periódicamente un analyze y un optimize a cada tabla de la base de datos.
Para ejecutar un comando SQL para todas las tablas lo podemos hacer con mk-find:
mk-find -p contrasenaMySQL --exec 'analyze table %D.%N;'
Podemos crear un script, por ejemplo en /usr/local/bin, con el siguiente mk-find:
- analyze:
#!/bin/bash exec /usr/local/bin/mk-find -p $(cat /var/mysql/.mysql.root.pass) --exec 'analyze table %D.%N;
- analyze:
#!/bin/bash exec /usr/local/bin/mk-find -p $(cat /var/mysql/.mysql.root.pass) --exec 'optimize table %D.%N;'
Para almacenar la contraseña del MySQL podemos usar un fichero en el datadir del MySQL con permisos restringidos, por ejemplo:
# ls -la /var/mysql/.mysql.root.pass -r-------- 1 root root 13 Dec 22 2008 /var/mysql/.mysql.root.pass
A continuación podemos definir los crons según sea necesario en nuestra base de datos, en este caso se usa un analyze diario y un optimize semanal.
# analyze diario para todo el MySQL 0 6 * * * /usr/local/bin/analyze.mysql.sh # optimize los domingos para todo el MySQL 30 6 * * 0 /usr/local/bin/optimize.mysql.sh
Relacionados
Imprimir
Deja un comentario: