285 votos

Cómo obtener los tamaños de las tablas de una base de datos mysql?

Puedo ejecutar esta consulta para obtener los tamaños de todas las tablas en una base de datos mysql:

show table status from myDatabaseName;

Me gustaría un poco de ayuda en la comprensión de los resultados. Estoy buscando tablas con el más grande de los tamaños.

La columna que debo mirar?

651voto

ChapMic Puntos 5539

Usted puede utilizar esta consulta para mostrar el tamaño de una tabla:

SELECT table_name AS "Table", 
round(((data_length + index_length) / 1024 / 1024), 2) "Size in MB" 
FROM information_schema.TABLES 
WHERE table_schema = "$DB_NAME"
 AND table_name = "$TABLE_NAME";

o esta consulta para mostrar el tamaño de cada tabla en la base de datos más grande de la primera:

SELECT table_name AS "Tables", 
round(((data_length + index_length) / 1024 / 1024), 2) "Size in MB" 
FROM information_schema.TABLES 
WHERE table_schema = "$DB_NAME"
ORDER BY (data_length + index_length) DESC;

44voto

Sumith Harshan Puntos 1395
SELECT TABLE_NAME AS "Table Name", 
table_rows AS "Quant of Rows", ROUND( (
data_length + index_length
) /1024, 2 ) AS "Total Size Kb"
FROM information_schema.TABLES
WHERE information_schema.TABLES.table_schema = 'YOUR SCHEMA NAME/DATABASE NAME HERE'
LIMIT 0 , 30

Usted puede obtener el nombre del esquema de "information_schema" -> ESQUEMAS de tabla> "SCHEMA_NAME" columna


Adicional Usted puede conseguir el tamaño de las bases de datos de mysql de la siguiente manera.

SELECT table_schema "DB Name", 
Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" 
FROM   information_schema.tables 
GROUP  BY table_schema; 

Resultado

DB Name              |      DB Size in MB

mydatabase_wrdp             39.1
information_schema          0.0

Usted puede obtener más información aquí.

8voto

Gank Puntos 324
SELECT table_name AS "Table",  round(((data_length + index_length) / 1024 / 1024), 2) as TEST   FROM information_schema.TABLES  WHERE table_schema = "YOUR_DATABASE_NAME"  order by TEST; 

Esto también puede ordenar los tamaños (DB Tamaño en MB).

2voto

kenorb Puntos 2464

Para Drupal/drush solución, compruebe el siguiente script de ejemplo que mostrará la más grande de las tablas en uso:

#!/bin/sh
DB_NAME=$(drush status --fields=db-name --field-labels=0 | tr -d '\r\n ')
drush sqlq "SELECT table_name AS 'Tables', round(((data_length + index_length) / 1024 / 1024), 2) 'Size in MB' FROM information_schema.TABLES WHERE table_schema = \"${DB_NAME}\" ORDER BY (data_length + index_length) DESC;" | head -n20

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: