No MySQL, você pode verificar o tamanho de todas as tabelas em um determinado banco de dados (ou em todos os bancos de dados) consultando o arquivo
information_schema.tables
tabela. Esta tabela armazena dados sobre cada tabela em um banco de dados, incluindo informações sobre o tamanho de cada tabela, data de criação, agrupamento, etc. Você também pode encontrar o tamanho de cada tabela em um banco de dados usando a GUI do MySQL Workbench.
Este artigo fornece uma visão geral rápida de cada método.
Exemplo de código
Aqui está um exemplo de uma consulta SQL que retorna o tamanho das tabelas em um banco de dados.
SELECT table_name 'Table Name', data_length + index_length 'Size in Bytes', ROUND(((data_length + index_length) / 1024 / 1024), 2) 'Size in MiB' FROM information_schema.tables WHERE table_schema = 'sakila' ORDER BY (data_length + index_length) DESC;
Resultado:
+----------------------------+---------------+-------------+ | Table Name | Size in Bytes | Size in MiB | +----------------------------+---------------+-------------+ | rental | 2785280 | 2.66 | | payment | 2228224 | 2.13 | | inventory | 376832 | 0.36 | | film | 278528 | 0.27 | | film_actor | 278528 | 0.27 | | film_text | 196608 | 0.19 | | customer | 131072 | 0.13 | | address | 114688 | 0.11 | | staff | 98304 | 0.09 | | film_category | 81920 | 0.08 | | city | 65536 | 0.06 | | store | 49152 | 0.05 | | actor | 32768 | 0.03 | | country | 16384 | 0.02 | | language | 16384 | 0.02 | | category | 16384 | 0.02 | | staff_list | 0 | 0.00 | | customer_list | 0 | 0.00 | | nicer_but_slower_film_list | 0 | 0.00 | | actor_info | 0 | 0.00 | | sales_by_film_category | 0 | 0.00 | | film_list | 0 | 0.00 | | sales_by_store | 0 | 0.00 | +----------------------------+---------------+-------------+
Isso retorna o tamanho de cada tabela no
sakila
base de dados. Substitua sakila
com o nome do banco de dados relevante. Claro, você pode omitir o WHERE
cláusula completamente, e isso retornará o tamanho da tabela de todas as tabelas em todos os bancos de dados, mas será uma lista longa. Nesse caso, ordenei os resultados pelo tamanho da tabela em ordem decrescente. Também adicionei uma coluna com o tamanho convertido em MiB (Mebibytes).
Outro método de converter o tamanho é usar o
sys.FORMAT_BYTES()
função. A função sys.FORMAT_BYTES()
Você pode usar o
sys.FORMAT_BYTES()
função para converter o tamanho de bytes em bytes
, KiB
(kibibytes), MiB
(mebibytes), GiB
(gibibytes), TiB
(tebibytes) ou PiB
(pebibytes), com o indicador de unidades adicionado ao valor. O indicador de unidades é adicionado automaticamente. A função decidirá em qual unidade converter, dependendo do tamanho do valor, para que você não tenha controle sobre qual unidade usar. Aqui está um exemplo de como usar este método:
SELECT table_name 'Table Name', data_length + index_length 'Size in Bytes', sys.FORMAT_BYTES((data_length + index_length)) 'Size (Formatted)' FROM information_schema.tables WHERE table_schema = 'sakila' ORDER BY (data_length + index_length) DESC;
Resultado:
+----------------------------+---------------+------------------+ | Table Name | Size in Bytes | Size (Formatted) | +----------------------------+---------------+------------------+ | rental | 2785280 | 2.66 MiB | | payment | 2228224 | 2.12 MiB | | inventory | 376832 | 368.00 KiB | | film | 278528 | 272.00 KiB | | film_actor | 278528 | 272.00 KiB | | film_text | 196608 | 192.00 KiB | | customer | 131072 | 128.00 KiB | | address | 114688 | 112.00 KiB | | staff | 98304 | 96.00 KiB | | film_category | 81920 | 80.00 KiB | | city | 65536 | 64.00 KiB | | store | 49152 | 48.00 KiB | | actor | 32768 | 32.00 KiB | | category | 16384 | 16.00 KiB | | country | 16384 | 16.00 KiB | | language | 16384 | 16.00 KiB | | actor_info | 0 | 0 bytes | | customer_list | 0 | 0 bytes | | film_list | 0 | 0 bytes | | nicer_but_slower_film_list | 0 | 0 bytes | | sales_by_film_category | 0 | 0 bytes | | sales_by_store | 0 | 0 bytes | | staff_list | 0 | 0 bytes | +----------------------------+---------------+------------------+
MySQL Workbench
Se você estiver usando a GUI do MySQL Workbench, poderá apontar e clicar no caminho para os tamanhos das tabelas. Veja como:
- Navegue até o banco de dados em
Schemas
painel - Passe o mouse sobre o banco de dados aplicável
- Clique no pequeno ícone de informações ao lado do nome do banco de dados. Isso carrega informações sobre o banco de dados, incluindo seu tamanho aproximado, contagem de tabelas, agrupamento etc.
- Clique em
Tables
aba. Isso exibe informações sobre cada tabela no banco de dados, incluindo o comprimento dos dados e o comprimento do índice.