Uma informação legal, mais do que legal, importante, mais do que importante, necessária!

Quem nunca perguntou ou foi perguntado sobre qual o tamanho de um banco de dados ou de uma tabela?
Quando as tabelas são MyISAM da para olhar o tamanho dos arquivos, ou se for InnoDB e estiver com o innodb_per_tables habilitada até conseguimos, mas temos que nos conectarmos no servidor, acessar o diretórios e ai olhar os arquivos, depois somar os valores, etc…

Com esses simples SELECTs conseguimos essas respostas.

Verificar os tamanhos dos databases

SELECT table_schema AS 'DB', FORMAT(SUM(TABLE_ROWS), 0) AS 'Linhas', ROUND(SUM(DATA_LENGTH + INDEX_LENGTH )/1024/1024, 3) AS 'MB'
FROM information_schema.TABLES
GROUP BY table_schema 
WITH ROLLUP;

Verificar os tamanhos das tabelas de um database

SELECT TABLE_NAME AS 'Tabela', FORMAT(SUM(TABLE_ROWS ), 0) AS 'Linhas', ROUND(SUM(DATA_LENGTH + INDEX_LENGTH)/1024/1024, 3 ) AS 'MB'
FROM information_schema.TABLES
WHERE table_schema = 'nome do database'
GROUP BY TABLE_NAME
WITH ROLLUP;

Obs: Os valores apresentados podem sofrer variação, principalmente quando o banco não está sendo usado, isso se deve ao fato desses valores serem atualizados quando o mysqld achar mais conveniente, e normalmente ele prefere nos momentos em que não tem concorrência.

Aulas ao vivo sem que você precise sair de casa.

Post Navigation