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 !

Author: marvin, 2013-02-05

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; 
 262
Author: ron_dobley, 2017-12-10 14:29:19

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>"
 92
Author: minhas23, 2016-07-01 06:35:24

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:

phpMyAdmin screenshot

Isto provavelmente vai perder alguma precisão à medida que os tamanhos sobem, mas deve ser preciso o suficiente para os seus propósitos.
 29
Author: Radu Murzea, 2013-02-05 19:03:31

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; 
 8
Author: jakson, 2016-07-20 16:41:57
Basicamente, há duas maneiras.: pesquisa DB (Comprimento dos dados + comprimento do índice) ou verificar o tamanho dos ficheiros. O comprimento do Índice está relacionado aos dados armazenados em índices.

Está tudo descrito aqui:

Http://www.mkyong.com/mysql/how-to-calculate-the-mysql-database-size/

 3
Author: MiGro, 2015-09-22 07:04:44

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'
 0
Author: Semra, 2016-05-09 11:07:13

SUM(Data_free) pode ou não ser válido. Depende da história de innodb_file_per_table. Mais discussão é encontrada toma..

 0
Author: Rick James, 2017-05-23 11:55:07

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

 0
Author: ofrommel, 2018-03-26 18:57:44