Como obter o tamanho verdadeiro da Base de dados MySQL?
gostaria de saber quanto espaço é que a minha base de dados MySQL usa para seleccionar uma máquina web. Eu encontrei o comando {[[1]} então quando eu faço a consulta, Eu recebo algo assim:
Name | Rows | Avg. Row Length | Data_Length | Index Length
---------- ---- --------------- ----------- ------------
table_name 400 55 362000 66560
- os números são arredondados.
, Então eu tenho 362000 ou 400*362000 = 144800000 bytes de dados para esta tabela? E o que significa o comprimento do Índice? Obrigado !
8 answers
De S. Prakash, encontrado no fórum de MySQL:
SELECT table_schema "database name",
sum( data_length + index_length ) / 1024 / 1024 "database size in MB",
sum( data_free )/ 1024 / 1024 "free space in MB"
FROM information_schema.TABLES
GROUP BY table_schema;
Você pode obter o tamanho da sua base de dados Mysql executando o seguinte comando no cliente Mysql
SELECT sum(round(((data_length + index_length) / 1024 / 1024 / 1024), 2)) as "Size in GB"
FROM information_schema.TABLES
WHERE table_schema = "<database_name>"
Se usar o phpMyAdmin, ele pode dizer-lhe esta informação.
Basta ir para" bases de Dados "(menu no topo) e clicar em"Activar as Estatísticas".
Vais ver algo assim:
Isto provavelmente vai perder alguma precisão à medida que os tamanhos sobem, mas deve ser preciso o suficiente para os seus propósitos.Se o quiser encontrar em MB faça isto
SELECT table_schema "DB Name",
Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
FROM information_schema.tables
GROUP BY table_schema;
Está tudo descrito aqui:
Http://www.mkyong.com/mysql/how-to-calculate-the-mysql-database-size/
Nenhuma das respostas inclui o tamanho superior e o tamanho dos metadados das tabelas.
Aqui está uma estimativa mais precisa do" espaço em disco " atribuído por um banco de dados.SELECT ROUND((SUM(data_length+index_length+data_free) + (COUNT(*) * 300 * 1024))/1048576+150, 2) AS MegaBytes FROM information_schema.TABLES WHERE table_schema = 'DATABASE-NAME'
SUM(Data_free)
pode ou não ser válido. Depende da história de innodb_file_per_table
. Mais discussão é encontrada toma..
Os utilitários MySQL da Oracle têm um comando chamado mysqldiskusage que mostra a utilização do disco de cada base de dados: https://dev.mysql.com/doc/mysql-utilities/1.6/en/mysqldiskusage.html