Skip to content

Archives

  • Janeiro 2022
  • Dezembro 2021
  • Novembro 2021
  • Outubro 2021
  • Setembro 2021

Categories

  • Sem categorias
Trend RepositoryArticles and guides
Articles

How to Get the Size of a Table in MySQL

On Dezembro 17, 2021 by admin

Como a maioria das bases de dados relacionais, o MySQL fornece metadados úteis sobre a base de dados em si. Enquanto a maioria das outras bases de dados referem-se a esta informação como um catalog, a documentação oficial do MySQL refere-se a INFORMATION_SCHEMA metadados como tables.

Independentemente do nome, o que importa é a informação fornecida por estas INFORMATION_SCHEMA tabelas. Tudo desde views e user_privilieges até columns e tables pode ser encontrado no arquivo INFORMATION_SCHEMA. Para os nossos propósitos estamos particularmente interessados nos metadados tables, que podemos consultar para realmente extrair o tamanho de várias tabelas no sistema.

List Table Sizes From a Single Database

As can seen in the official documentation, the INFORMATION_SCHEMA.TABLES table contains around 20 columns, but for the purpose of determining the amount of disk space used by tables, we’ll focus on two columns in particular: DATA_LENGTH e INDEX_LENGTH.

  • DATA_LENGTH é o comprimento (ou tamanho) de todos os dados da tabela (em bytes).
  • INDEX_LENGTH é o comprimento (ou tamanho) do arquivo de índice da tabela (também em bytes).

Armado com esta informação, podemos executar uma consulta que listará todas as tabelas em uma base de dados específica juntamente com o espaço em disco (tamanho) de cada uma. Nós podemos até mesmo obter um pouco mais de fantasia e converter os valores de tamanho normal de bytes em algo mais útil e compreensível para a maioria das pessoas 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;

>

Neste exemplo usando o banco de dados bookstore, estamos combinando os DATA_LENGTH e INDEX_LENGTH como bytes, então dividindo por 1024 duas vezes para converter em kilobytes e então megabytes. Nosso conjunto de resultados será algo parecido com isto:

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

Se você não se importa com todas as tabelas do banco de dados e só quer o tamanho de uma tabela em particular, você pode simplesmente adicionar AND TABLE_NAME = "your_table_name" à cláusula WHERE. Aqui só queremos informação sobre a book tabela:

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;

>

Os resultados, como esperado, são agora:

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

Listar todos os tamanhos de tabelas de todas as bases de dados

Se você estiver encontrando um problema onde sua base de dados está crescendo em tamanho, mas você não sabe qual tabela é a culpada, pode ser útil consultar o tamanho de todas as tabelas dentro de todas as bases de dados em todo o sistema. Isto pode ser feito facilmente com a seguinte 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;

Isto irá retornar não só o tamanho da tabela, mas também o nome da tabela e do banco de dados pai ao qual ela está associada.

Deixe uma resposta Cancelar resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Arquivo

  • Janeiro 2022
  • Dezembro 2021
  • Novembro 2021
  • Outubro 2021
  • Setembro 2021

Meta

  • Iniciar sessão
  • Feed de entradas
  • Feed de comentários
  • 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