Si eres usuario de bases de datos MySQL seguramente te habrá llegado algún mensaje de advertencia acerca de la optimización de tus bases de datos. A mí el otro día me avisó Moodle 3.1.3 acerca de que mi formato de tablas estaba en formato Antílope y me aconsejaba convertir mis datos a Barracuda. Sinceramente no tenía ni idea de a qué se estaba refiriendo, investigué para variar, y me di cuenta que sí, que era cierto, que podría incrementar el rendimiento de Moodle actualizando el formato.
"Your database has tables using Antelope as the file format. You are recommended to convert the tables to the Barracuda file format. See the documentation Administration via command line for details of a tool for converting InnoDB tables to Barracuda.”
No te preocupes por si te cargas tus tablas haciendo esto. Aunque los desarrolladores de MySQL le pongan nombres exóticos de "Antelope" / "Barracuda"... todo esto no es más que convertir un formato de tablas InnoDB de modo COMPACT a modo COMPRESSED.
Lo primero es comprobar con PHPMyAdmin o similar que tus tablas son del tipo InnoDB:
Y posteriormente sería ejecutar el comando:
ALTER TABLE nombretabla ROW_FORMAT=COMPRESSED
Pero claro, y si tienes 360 tablas, como tiene Moodle... vamos una a una? No, evidentemente. Ahí viene el script que te copio a continuación y que hará el trabajo por ti:
<?
// Datos de conexión
mysql_connect("ipMySQL","usuario","clave");
mysql_select_db("basededatos");
// Bucle que recorre todas las tablas de la base de datos
$res = mysql_query("SHOW TABLES");
while ($row = mysql_fetch_array($res))
{
foreach ($row as $key => $table)
{
mysql_query("ALTER TABLE " . $table . " ROW_FORMAT=COMPRESSED");
echo $key . " => " . $table . " CONVERTIDA<br />";
}
}
?>
Lo metes en una página .php en tu servidor web y lo ejecutas poniendo su nombre en el navegador. Por ejemplo si lo grabamos en nuestro servidor en la carpeta moodle con el nombre barracuda.php:
http://www.rafaelsantos.es/moodle/barracuda.php