Domingo, Septiembre 24, 2017

Cuánto espacio ocupan las tablas de una base de datos MySQL

mysql-logo.png

Anteriormente expliqué cómo obtener el tamaño de todas las bases de datos de un servidor MySQL. Esta vez necesitaba saber el tamaño de cada tabla dentro de una misma base de datos.

Para obtener esta información es necesario ejecutar la siguiente consulta:

SELECT table_name Tabla,(data_length+index_length) Tamaño FROM information_schema.tables WHERE table_schema='midb';

Reemplazando "midb" por el nombre de la base de datos en cuestión. Por ejemplo:

mysql> SELECT table_name Tabla,(data_length+index_length) Tamaño FROM information_schema.tables WHERE table_schema='midb';
+-------------------+------------+
| Tabla             | Tamaño     |
+-------------------+------------+
| adjuntos          |      16384 |
| agendas           |     162004 |
| archivos          |  423252948 |
| biblioteca        |     120540 |
| boletines         |       5288 |
| cursos            |       7456 |
| informacion       | 1055617708 |
| links             |     131072 |
| logs              |       3436 |
| noticias          |      16384 |
| programas         |   15700552 |
| resultados        |       2688 |
| salas             |      25372 |
| tutoriales        |      25096 |
| usuarios          |       7524 |
+-------------------+------------+
15 rows in set (0.00 sec)

El tamaño está expresado en bytes. Para expresar los tamaños en MB, simplemente dividir por 1024*1024:

mysql> SELECT table_name Tabla,(data_length+index_length)/(1024*1024) Tamaño FROM information_schema.tables WHERE table_schema='midb';
+-------------------+-----------+
| Tabla             | Tamaño    |
+-------------------+-----------+
| adjuntos          |    0.0156 |
| agendas           |    0.1545 |
| archivos          |  403.6455 |
| biblioteca        |    0.1150 |
| boletines         |    0.0050 |
| cursos            |    0.0071 |
| informacion       | 1006.7155 |
| links             |    0.1250 |
| logs              |    0.0033 |
| noticias          |    0.0156 |
| programas         |   14.9732 |
| resultados        |    0.0026 |
| salas             |    0.0242 |
| tutoriales        |    0.0239 |
| usuarios          |    0.0072 |
+-------------------+-----------+
15 rows in set (0.01 sec)

Si en cambio se desea conocer el tamaño de una única tabla, filtrar en la cláusula WHERE:

SELECT table_name Tabla,(data_length+index_length) Tamaño FROM information_schema.tables WHERE table_schema='midb' and table_name='mitabla';

Reemplazando "midb" y "mitabla" por la base de datos y tabla correspondientes.

Tener en cuenta que se trata del tamaño que ocupan datos más índices, lo cual no necesariamente corresponde con el tamaño que ocupan las tablas en disco. Para tablas InnoDB pequeñas el tamaño en disco puede ser muy superior, debido al espacio que reserva por adelanto el motor InnoDB. Sin embargo, para tablas de gran tamaño, la diferencia es insignificante. Para mayor información recomiendo leer el siguiente artículo.

 

Fuente: linuxito

Compártelo. ¡Gracias!

 
Grupo Digital de Ayuda! Laboratorio Linux! - Linux para todos.

¿Quién está en línea?

Hay 55 invitados y ningún miembro en línea

Contador de Visitas

8967406
Hoy Hoy 874
Ayer Ayer 1115
Esta semana Esta semana 7917
Este mes Este mes 27272
Total de Visitas Total de Visitas 8967406

Día con más
visitantes

07-19-2017 : 1525

Gracias por su visita