Neste post vou mostrar algumas consultas que utilizo para saber o espaço alocado no banco de dados MySQL. Geralmente utilizo consultas no administrador de banco de dados PHPMyadmin Como se trata de consultas simples, acredito que você não deve ter problemas se utiliza SSH ou um software em sua máquina local.
Consultas simples
No início utilizamos o SELECT table_schema
para selecionar o banco em nossa base de dados.
O comando SUM
soma os valores de armazenamento data_length + index_length
.
O próximo SUM
pega a soma do data_free
para exibir o que ainda temos disponível de espaço no DB.
Selecionamos estes dados das tabelas com FROM information_schema.TABLES
e agrupamos pelo DB com GROUP BY table_schema
data_length - armazenar os dados reais.
index_length - armazenar o índice da tabela.
SELECT table_schema "Nome do banco de dados",
sum( data_length + index_length ) / (1024 * 1024) "Tamanho em MB",
sum( data_free )/ (1024 * 1024) "Espaço livre em MB"
FROM information_schema.TABLES
GROUP BY table_schema;
Otimizar exibição
SELECT table_schema "Nome do banco de dados",
SUM( ROUND( (data_length + index_length) / ( 1024 *1024 ) , 2 ) ) "Tamanho em MB",
SUM( ROUND( (data_free) / ( 1024 *1024 ) , 2 ) ) "Espaço livre em MB"
FROM information_schema.TABLES
GROUP BY table_schema;
Talvez você queira visualizar de forma específica o tamanho das tabelas dentro do BD.
Neste exemplo o valor eduardolira recebido pelo table_schema
é o nome do meu banco de dados.
O legal é que agora podemos visualizar nas colunas o que somamos anteriormente, utilizando data_length + index_length
.
SELECT TABLE_NAME, table_rows, data_length, index_length,
ROUND( ((data_length + index_length) /1024 * 1024 ) , 2) "Tamanho em MB"
FROM information_schema.TABLES
WHERE table_schema = "eduardolira";
Otimizando mais:
SELECT concat( table_schema, '.', table_name ) Tabela,
concat( round( data_length / ( 1024 * 1024 ) , 2 ) , 'MB' ) data_length,
concat( round( index_length / ( 1024 * 1024 ) , 2 ) , 'MB' ) index_length,
concat( round( round( data_length + index_length ) / ( 1024 * 1024 ) , 2 ) , 'MB' ) Total
FROM information_schema.TABLES
ORDER BY data_length DESC;
Através dos links baixo você pode encontrar outras consultas úteis.
Referências -> https://dev.mysql.com/doc/refman/5.1/en/tables-table.html https://dev.mysql.com/doc/refman/5.1/en/show-table-status.html
Vlw! :v: