Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como verificar o tamanho de todas as tabelas em um banco de dados no MySQL


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:
  1. Navegue até o banco de dados em Schemas painel
  2. Passe o mouse sobre o banco de dados aplicável
  3. 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.
  4. 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.