Listar bases de datos con su tamaño en disco


Icono de sql A mi me ha ocurrido que he necesitado sacar el tamaño de las bases de datos de mysql que ocupaban en el disco. Ya sea porque se me llena el disco y hay que vaciarlo o por cualquier otra razón. Hay varias formas de averiguarlo, pero aquí solo mostraremos una, mostrándonoslo con una query.

SELECT table_schema AS "Database name", SUM(data_length + index_length) / 1024 / 1024 AS "Size (MB)" FROM information_schema.TABLES GROUP BY table_schema;

La query es bastante simple, nos mostrará una lista de las bases de datos y su tamaño en disco en MB. La salida será algo parecido a esto:

+--------------------+-------------+
| Database name      | Size (MB)   |
+--------------------+-------------+
| database1          |  2.34375000 |
| information_schema |  0.00878906 |
| mysql              |  0.68748856 |
| performance_schema |  0.00000000 |
+--------------------+-------------+
7 rows in set (0.23 sec)