MySql – Sql para saber tamaño de tablas
En algunas ocasiones, debido a que nuestra base de datos mysql llega al límite de su tamaño, no podemos entrar de forma normal a las tablas mediante phpmyadmin o cualquier cliente. Eso causa que no podamos ver qué tabla es la que nos está dando el problem.
Es por eso que os dejamos unas consultas en SQL que nos muestra el tamaño de las tablas. Para ello deberéis entrar por consola, y ejecutar mysql desde el terminal (putty).
A tener en cuenta antes de ver el código:
La columna del tamaño, se crea a partir de dos variables (columnas) de la tabla schema:
- DATA_LENGTH es el tamaño de los datos de la tabla (en bytes).
- INDEX_LENGTH es el tamaño del fichero índice de la tabla (en bytes).
Mysql – Tamaño de una tabla concreta de una base de datos
Para saber el tamaño en MB de una tabla concreta de una base de datos, el código SQL es:
SELECT TABLE_NAME AS `Tabla`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Tamaño (MB)` FROM information_schema.TABLES WHERE TABLE_SCHEMA = "nombre_de_la_base_de_datos" AND TABLE_NAME = "nombre_de_la_tabla" ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;
Mysql – Tamaño de todas las tablas de una base de datos
Para saber el tamaño de todas las tablas de una base de datos, el código SQL sería el siguiente:
SELECT TABLE_NAME AS `Tabla`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Tamaño (MB)` FROM information_schema.TABLES WHERE TABLE_SCHEMA = "nombre_de_la_base_de_datos" ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;
Mysql – Tamaño de todas las tablas de todas las bases de datos
Para conseguir un listado de todas las tablas de todas las bases de datos en sentencia SQL:
SELECT TABLE_SCHEMA AS `Basedatos`, TABLE_NAME AS `Tabla`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Tamaño (MB)` FROM information_schema.TABLES ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;
Recordad que todo el código y sentencias que mostramos en los artículos son sólo orientativos y de ningún modo nos hacemos responsables de lo que podáis hacer en vuestros servidores. Si utilizáis estos códigos es estrictamente bajo vuestra responsabilidad y eso supone que soys conscientes de qué hacéis.
Aquí os dejamos algunos enlaces que os pueden ayudar y las referencias desde las que se han realizado este artículo:
Os puede ayudar el artículo que hicimos que explica cómo hacer copia de seguridad en mysql desde consola:
Mysql – Exportar una base de datos desde consola
How to get the sizes of the tables of a MySQL database?
https://stackoverflow.com/questions/9620198/how-to-get-the-sizes-of-the-tables-of-a-mysql-database
How to Get the Size of a Table in MySQL
https://chartio.com/resources/tutorials/how-to-get-the-size-of-a-table-in-mysql/