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/