Como no tenía ninguna función a mano se me ocurrió investigar un poco y con esta simple SQL pude obtener la información que solicitaban.
Los datos del tamaño los muestro en MB y en la consulta me devuelve la información de todas las bases de datos a las que tiene acceso el usuario con el que lanzamos la query.
mysql> SELECT table_schema AS `name_bd`, sum( data_length + index_length ) / 1024 / 1024 AS `size`
-> FROM information_schema.TABLES
-> GROUP BY table_schema;
-> FROM information_schema.TABLES
-> GROUP BY table_schema;
Lo que devuelve esta función es lo siguiente:
+--------------------+--------------+
| name_bd | size |
+--------------------+--------------+
| information_schema | 0.00390625 |
| test | 173.52998352 |
+--------------------+--------------+
2 rows in set (0.80 sec)
Si quisiéramos obtener únicamente una base de datos en concreto, deberíamos añadir a la consulta una condición WHERE.
mysql> SELECT table_schema AS `name_bd`, sum( data_length + index_length ) / 1024 / 1024 AS `size`
-> FROM information_schema.TABLES
-> WHERE table_schema='test'
-> FROM information_schema.TABLES
-> WHERE table_schema='test'
-> GROUP BY table_schema;
Y el resultado es:
+----------------+--------------+
| name_bd | size |
+----------------+--------------+
| test | 173.52998352 |
+----------------+--------------+
1 row in set (0.84 sec)
No hay comentarios:
Publicar un comentario