LE ayudamos?

442 1-37-43-46 Horas: 9am-8pm L-V;  10am-3pm S

Optimizar tablas fragmentadas en MySQL



Para optimizar las tablas fragmentadas existe una manera simple y básica.

He encontrado que existen scripts en varios lenguajes para hacer algo muy simple desde el SHELL o SSH.
Ejemplo:
#!/bin/sh

echo -n "MySQL username: " ; read username
echo -n "MySQL password: " ; stty -echo ; read password ; stty echo ; echo

mysql -u $username -p"$password" -NBe "SHOW DATABASES;" | grep -v 'lost+found' | while read database ; do
mysql -u $username -p"$password" -NBe "SHOW TABLE STATUS;" $database | while read name engine version rowformat rows avgrowlength datalength maxdatalength indexlength datafree autoincrement createtime updatetime checktime collation checksum createoptions comment ; do
if [ "$datafree" -gt 0 ] ; then
fragmentation=$(($datafree * 100 / $datalength))
echo "$database.$name is $fragmentation% fragmented."
mysql -u "$username" -p"$password" -NBe "OPTIMIZE TABLE $name;" "$database"
fi
done
done

También he encontrado algunas sugerencias en sentencias SQL.
Ejemplo: ALTER TABLE table.name ENGINE='InnoDB';.

Bueno una vez adentro del SHELL o conectado vía SSH con permisos de administrador estos son los escripts a ejecutar.
(Primero uno y después el otro.)

mysqlcheck --all-databases -r #repair
mysqlcheck --all-databases -o #optimize

Espero que este texto sea de ayuda.

Saludos.


Centro de Formación
Ahorra tiempo,
Gana dinero, Crece y triunfa

Contactanos

Contactar