No MySQL, você pode consultar o
information_schema.tables
table para retornar informações sobre as tabelas em um banco de dados. Esta tabela inclui informações sobre o comprimento dos dados, comprimento do índice, bem como outros detalhes como agrupamento, tempo de criação, etc. Você pode usar as informações nesta tabela para encontrar o tamanho de um determinado banco de dados ou de todos os bancos de dados no servidor. Você também pode usar a GUI do MySQL Workbench para encontrar detalhes sobre o banco de dados (incluindo seu tamanho).
Este artigo fornece uma visão geral rápida de ambos os métodos.
Exemplo de código
Aqui está um exemplo de como encontrar o tamanho de cada banco de dados executando uma consulta no
information_schema.tables
tabela:SELECT table_schema 'Database Name', SUM(data_length + index_length) 'Tamanho em Bytes', ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) 'Tamanho em MiB'FROM information_schema.tables GROUP BY table_schema;
Resultado:
+--------------------+---------------+--------- ----+| Nome do banco de dados | Tamanho em Bytes | Tamanho em MiB |+--------------------+---------------+-------- -----+| information_schema | 0 | 0,00 || Música | 98304 | 0,09 || mysql | 2506752 | 2,39 || performance_schema | 0 | 0,00 || sakila | 6766592 | 6,45 || Soluções | 16384 | 0,02 || sistema | 16384 | 0,02 || mundo | 802816 | 0,77 |+--------------------+---------------+---------- ---+
Neste exemplo listei o tamanho em bytes e em mebibytes (MiB), mas você pode escolher como quer apresentá-lo.
Claro, você sempre pode reduzi-lo a um banco de dados específico, se necessário. Basta adicionar um
WHERE
cláusula com o nome do banco de dados:SELECT table_schema 'Database Name', SUM(data_length + index_length) 'Tamanho em Bytes', ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) 'Tamanho em MiB'FROM information_schema.tables WHERE table_schema =' sakila';
Resultado:
+---------------+---------------+-------------+ | Nome do banco de dados | Tamanho em Bytes | Tamanho em MiB |+---------------+---------------+------------- +| sakila | 6766592 | 6.45 |+---------------+---------------+-------------+A função FORMAT_BYTES()
Você pode usar osys.FORMAT_BYTES()
função para salvar a si mesmo convertendo o tamanho em mebibytes, kibibytes ou qualquer outra coisa. Essa função recebe um valor, converte-o em formato legível e retorna uma string que consiste em um valor e um indicador de unidades. O valor convertido dependerá do tamanho do valor (assim o resultado poderá estar embytes
,KiB
(kibibytes),MiB
(mebibytes),GiB
(gibibytes),TiB
(tebibytes) ouPiB
(pebibytes).
Aqui está um exemplo de reescrever o exemplo anterior para usar oFORMAT_BYTES()
função:
USE Music;SELECT table_schema 'Database Name', SUM(data_length + index_length) 'Tamanho em Bytes', sys.FORMAT_BYTES(SUM(data_length + index_length)) 'Tamanho (Formatted)'FROM information_schema.tables GROUP BY table_schema;
Resultado:
+--------------------+---------------+--------- ---------+| Nome do banco de dados | Tamanho em Bytes | Tamanho (formatado) |+--------------------+---------------+------- -----------+| information_schema | 0 | 0 bytes || Música | 98304 | 96,00 KiB || mysql | 2506752 | 2,39 MiB || performance_schema | 0 | 0 bytes || sakila | 6766592 | 6,45 MiB || Soluções | 16384 | 16,00 KiB || sistema | 16384 | 16,00 KiB || mundo | 802816 | 784,00 KiB |+--------------------+---------------+--------- ---------+MySQL Workbench
Outra maneira de encontrar o tamanho do banco de dados é usar a GUI do MySQL Workbench. 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. O tamanho do banco de dados é listado em
Info
guia (geralmente a guia padrão).