Comprobar el tamaño de una base de datos MySQL
Hace escasos días me encontré con que tenía que migrar un blog a un alojamiento nuevo más económico, pero que me limitaba el tamaño de la base de datos. El primer paso fue comprobar el tamaño de una base de datos MySQL. Esto se puede llevar a cabo de varias formas, pero nosotros hablaremos de cómo hacerlo con un comando a través de la terminal Linux.
Si disponemos de algún gestor MySQL con interfaz gráfica, como puede ser phpMyAdmin, basta con acceder y consultar las estadísticas que nos muestra el propio gestor. Lo realmente interesante es hacerlo desde la shell cuando tenemos acceso por SSH al servidor.
Comprobar el tamaño de una base de datos MySQL desde la terminal Linux.
Doy por hecho que tenemos una sesión de terminal abierta, por ejemplo usando PuTTY. En primer lugar debemos acceder e identificarnos en el servidor MySQL con nuestro usuario y contraseña. Para esto, ejecutamos el siguiente comando:
mysql -u username -p
Si necesitásemos especificar un nombre de host para el servidor MySQL, el comando que empleamos para autentificarnos sería por ejemplo:
mysql -h 127.0.0.1 -u username -p
Tras ejecutar este comando se nos solicitará la contraseña y si todo ha ido bien, ya estaremos autentificados y listos para ejecutar consultas SQL.
Para obtener el tamaño de todas las base de datos, la query que debemos emplear es:
SELECT table_schema "database", sum(data_length + index_length)/1024/1024 "size in MB" FROM information_schema.TABLES GROUP BY table_schema;
La salida tras ejecutar la consulta anterior sería algo como:
MariaDB [(none)]> SELECT table_schema "database", sum(data_length + index_length)/1024/1024 "size in MB" FROM information_schema.TABLES GROUP BY table_schema; +--------------------+-------------+ | database | size in MB | +--------------------+-------------+ | information_schema | 0.07812500 | | mysql | 0.62622643 | | performance_schema | 0.00000000 | | vozidea | 55.40495396 | +--------------------+-------------+ 4 rows in set (0.02 sec)
Vemos que nos muestra el tamaño en MB de todas las bases de datos.
Si sólo quisiésemos consultar el tamaño de una base de datos específica, la query sería:
SELECT table_schema "database", sum(data_length + index_length)/1024/1024 "size in MB" FROM information_schema.TABLES WHERE table_schema='nombre_db' GROUP BY table_schema;
Al ejecutar la consulta SQL anterior, debemos tener en cuenta que donde pone nombre_db
, tenemos que reemplazarlo por el nombre de la base de datos de la que queremos obtener su tamaño.
Consideraciones finales.
Esta consulta SQL para obtener el tamaño de una base de datos MySQL sólo funciona en MySQL 5 o superior y en cualquier versión de MariaDB. Esto se debe a que en versiones antiguas, previas a MySQL 5, no se empleaba la base de datos INFORMATION_SCHEMA
.