Una típica pregunta que se hace todo webmaster es cuanto volumen tiene una determinada base de datos.
Este código nos da el tamaño de una base de datos en megabytes y en kilobytes. El tamaño de cada una de las tablas aparecerá junto a su nombre expresado en kilobytes.
<?php
include('abre_conexion.php');
// -------------------------- Extraemos los tamaños de las tablas
$tables = array();
mysql_select_db($basededatos) or die("Error al conectar a la base de datos.");
$SQL ="SHOW TABLE STATUS";
$result = mysql_query( $SQL ) or die("No se puede ejecutar la consulta:
".mysql_error());
while($row = mysql_fetch_array($result)) {
// VALOR EN KILOBYTES*/
$total_size = ($row[ "Data_length" ] + $row[ "Index_length" ]) / 1024;
$tables[$row['Name']] = sprintf("%.2f", $total_size);
}
// -------------------------- Extraemos el tamaño total de la base de datos
$sql = "SHOW TABLE STATUS";
$resultado = mysql_query($sql);
$bytes = 0;
//Suma los tamaños de los indices y los datos de todas las tablas
while ($tabla = mysql_fetch_assoc($resultado))
{
$bytes += ($tabla['Data_length']+$tabla['Index_length']);
}
$kilobyte = $bytes/1024;
$megabyte = $kilobyte/1024;
// Redondeamos a dos decimales
$kilobytes = round($kilobyte,2);
$megabytes = round($megabyte,2);
// -------------------------- Imprimimos los resultados
include('cierra_conexion.php');
echo "<h3>Base de datos al completo</h3>
Nombre base de datos: <font color='#0000FF'>$base_datos</font> <br>
Volumen de la base de datos: $kilobytes kilobytes <br>
Volumen de la base de datos: $megabytes megabytes
";
echo "<h3>Relación de tablas con su tamaño en kilobytes</h3>";
echo "<pre>";
print_r($tables);
echo "</pre>";
?>