No PHPMyAdmin, você pode ver o uso do espaço simplesmente clicando na tabela.
AR.
As respostas para esta pergunta me ajudaram a obter minha solução. Uma busca completa por uma ferramenta que pudesse me ajudar sem executar a mesma consulta todas as vezes para obter os dados me fez percorrer o MONyog , MySQL Enterprise Monitor , kit de ferramentas Percona . Todos eles fornecem detalhes sobre as informações do disco, mas finalmente optaram pelo MONyog para obter melhores gráficos e facilitar a interface gráfica.
Mathew
Respostas:
285
Para uma tabela, mydb.mytableexecute isso para:
BYTES
SELECT(data_length+index_length) tablesize
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
KILOBYTES
SELECT(data_length+index_length)/power(1024,1) tablesize_kb
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
MEGABYTES
SELECT(data_length+index_length)/power(1024,2) tablesize_mb
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
GIGABYTES
SELECT(data_length+index_length)/power(1024,3) tablesize_gb
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
GENÉRICO
Aqui está uma consulta genérica em que a exibição máxima da unidade é TB (TeraBytes)
SELECT (data_length+index_length)/power(1024,2) tablesize_mb, table_name FROM information_schema.tables WHERE table_schema='mydb' order by tablesize_mb;para obter uma lista de todas as tabelas mydbcom nome e tamanho, ordenadas por tamanho.
kqw
1
Acrescente "DESC" à cláusula ORDER BY para ver as tabelas que consomem mais espaço em disco primeiro. ;)
mvsagar
Para ser mais preciso, convém chamar as unidades ki bi bytes (KiB), me bi bytes (MiB) e gi bi bytes (GiB) ao usar prefixos binários (multiplicação com a potência de 2). Ou, convém usar prefixos decimais (multiplicação com a potência de 1000) e chamar as unidades ki lo bytes (KB), me ga bytes (MB) e gi ga bytes (GB). Veja mais: en.wikipedia.org/wiki/Binary_prefix
A questão é perguntar como medir o espaço ocupado por uma tabela específica .
Flimm
@ShariqueAbdullah isso funcionará se você estiver usando innodb_file_per_table, o que não é padrão, mas acho que é muito comum e / ou recomendado (alguém pode facilmente provar que estou errado nisso, apenas minha impressão).
Seaux
@Seaux, pode ser, mas não o encontrei sendo usado em nenhuma configuração de servidor recomendada pela qual passei. Então você pode estar certo, mas como não é o padrão, ele pode não encontrá-lo. Além disso, acho que o innodb funciona bem diferente comparado ao MyISAM. Portanto, mesmo se você tiver o tamanho do arquivo, ele pode não ser tão preciso quanto seria no caso do MyISAM. Mas você está certo de que pode ser uma solução. Pessoalmente, prefiro usar comandos MySQL para obter essas informações em vez de medir o tamanho dos arquivos.
Sharique Abdullah
2
Com base na resposta do RolandMySQLDBA, acho que podemos usar o acima para obter o tamanho de cada esquema em uma tabela:
SELECT table_schema, SUM((data_length+index_length)/power(1024,1)) tablesize_kb
FROM information_schema.tables GROUPBY table_schema;
Cada tabela é armazenada em dois arquivos separados dentro de uma pasta com o nome que você chamou de banco de dados. Essas pastas são armazenadas no diretório de dados do mysql.
A partir daí, você pode fazer um 'du -sh. *' Para obter o tamanho da tabela em disco.
Você pode verificar o tamanho da tabela MySQL olhando no phpMyAdminseu painel de controle clicando no nome do banco de dados no quadro esquerdo e lendo o tamanho das tabelas no quadro direito.
A consulta abaixo também ajudará a obter as mesmas informações em bytes
select SUM(data_length)+ SUM(index_length)as total_size
from information_schema.tables
where table_schema ='db_name'and table_name='table_name';
Respostas:
Para uma tabela,
mydb.mytable
execute isso para:BYTES
KILOBYTES
MEGABYTES
GIGABYTES
GENÉRICO
Aqui está uma consulta genérica em que a exibição máxima da unidade é TB (TeraBytes)
De uma chance !!!
fonte
SELECT (data_length+index_length)/power(1024,2) tablesize_mb, table_name FROM information_schema.tables WHERE table_schema='mydb' order by tablesize_mb;
para obter uma lista de todas as tabelasmydb
com nome e tamanho, ordenadas por tamanho.Bit rápido de SQL para obter as 20 maiores tabelas em MB.
Espero que seja útil para alguém!
fonte
Isso não será preciso para as tabelas do InnoDB. O tamanho do disco é realmente maior do que o relatado por meio de consulta.
Por favor, consulte este link da Percona para obter mais informações.
https://www.percona.com/blog/2008/12/16/how-much-space-does-empty-innodb-table-take/
fonte
No linux com o mysql instalado por padrão:
baseado na localização mysql db do NIXCRAFT
fonte
Com base na resposta do RolandMySQLDBA, acho que podemos usar o acima para obter o tamanho de cada esquema em uma tabela:
Gostei muito!
fonte
Talvez você possa ver o tamanho dos arquivos ...
Cada tabela é armazenada em dois arquivos separados dentro de uma pasta com o nome que você chamou de banco de dados. Essas pastas são armazenadas no diretório de dados do mysql.
A partir daí, você pode fazer um 'du -sh. *' Para obter o tamanho da tabela em disco.
fonte
Retirado de Como verifico quanto espaço em disco meu banco de dados está usando?
A consulta abaixo também ajudará a obter as mesmas informações em
bytes
fonte
Eu usaria apenas a ferramenta ' mysqldiskusage ' da seguinte maneira
fonte