Skip to content

Archives

  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021

Categories

  • No hay categorías
Trend RepositoryArticles and guides
Articles

Cómo obtener el tamaño de una tabla en MySQL

On diciembre 17, 2021 by admin

Como la mayoría de las bases de datos relacionales, MySQL proporciona metadatos útiles sobre la propia base de datos. Mientras que la mayoría de las otras bases de datos se refieren a esta información como catalog, la documentación oficial de MySQL se refiere a los metadatos INFORMATION_SCHEMA como tables.

Independientemente del nombre, lo que importa es la información proporcionada por estas tablas INFORMATION_SCHEMA. Todo, desde views y user_privilieges hasta columns y tables se puede encontrar en las INFORMATION_SCHEMA. Para nuestros propósitos estamos particularmente interesados en los metadatos de tables, que podemos consultar para extraer realmente el tamaño de varias tablas del sistema.

Lista de tamaños de tablas de una sola base de datos

Como se puede ver en la documentación oficial, la tabla INFORMATION_SCHEMA.TABLES contiene alrededor de 20 columnas, pero para el propósito de determinar la cantidad de espacio en disco utilizado por las tablas, nos centraremos en dos columnas en particular: DATA_LENGTH y INDEX_LENGTH.

  • DATA_LENGTH es la longitud (o tamaño) de todos los datos de la tabla (en bytes).
  • INDEX_LENGTH es la longitud (o tamaño) del archivo de índice de la tabla (también en bytes).

Armados con esta información, podemos ejecutar una consulta que listará todas las tablas de una base de datos específica junto con el espacio en disco (tamaño) de cada una. Incluso podemos ser un poco más sofisticados y convertir los valores de tamaño normales de bytes en algo más útil y comprensible para la mayoría de la gente como megabytes.

SELECT TABLE_NAME AS `Table`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`FROM information_schema.TABLESWHERE TABLE_SCHEMA = "bookstore"ORDER BY (DATA_LENGTH + INDEX_LENGTH)DESC;

En este ejemplo utilizando la base de datos bookstore, estamos combinando el DATA_LENGTH y INDEX_LENGTH como bytes, luego dividiéndolo por 1024 dos veces para convertirlo en kilobytes y luego megabytes. Nuestro conjunto de resultados se parecerá a esto:

+----------------------------------+-----------+| Table | Size (MB) |+----------------------------------+-----------+| book | 267 || author | 39 || post | 27 || cache | 24 |...

Si no te importan todas las tablas de la base de datos y sólo quieres el tamaño de una tabla en particular, puedes simplemente añadir AND TABLE_NAME = "your_table_name" a la cláusula WHERE. Aquí sólo queremos información sobre la tabla book:

SELECT TABLE_NAME AS `Table`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`FROM information_schema.TABLESWHERE TABLE_SCHEMA = "bookstore" AND TABLE_NAME = "book"ORDER BY (DATA_LENGTH + INDEX_LENGTH)DESC;

Los resultados, como se esperaba, son ahora:

+-------+-----------+| Table | Size (MB) |+-------+-----------+| book | 267 |+-------+-----------+1 row in set (0.00 sec)

Lista de todos los tamaños de las tablas de TODAS las bases de datos

Si te encuentras con un problema en el que tu base de datos está creciendo en tamaño pero no sabes qué tabla es la culpable, puede ser útil consultar el tamaño de todas las tablas dentro de todas las bases de datos en todo el sistema. Esto se puede lograr fácilmente con la siguiente consulta:

SELECT TABLE_SCHEMA AS `Database`, TABLE_NAME AS `Table`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`FROM information_schema.TABLESORDER BY (DATA_LENGTH + INDEX_LENGTH)DESC;

Esto devolverá no sólo el tamaño de la tabla, sino también el nombre de la tabla y la base de datos principal a la que está asociada.

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Archivos

  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021

Meta

  • Acceder
  • Feed de entradas
  • Feed de comentarios
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress