Como monitorar a utilização do disco de porcentagem do mysql?

1

Eu sou novo no mundo mysql e não tenho certeza se existe uma maneira de calcular a utilização do MySql TableSpace / DiskSpace em porcentagem. Estou ciente de que o mysql não fornece limite superior ou espaço livre como o Oracle DB, mas apenas o espaço consumido pelas tabelas Index e Data Tables. Eu decidi adicionar estes dois valores e dividir com o espaço total disponível para o ponto de montagem mencionado no atributo "datadir" do mysql. Minhas consultas são:

  1. É este o jeito certo de fazer isso ??
  2. E se bancos de dados / tabelas forem criados em diferentes pontos de montagem. Existe uma maneira de monitorar o espaço disponível para a instância mysql?
por Avijit 13.08.2015 / 10:42

2 respostas

1

Esta consulta retornará Tablename e o número de registros que possui.

SELECT 
TABLE_SCHEMA AS 'Database',
TABLE_NAME AS 'Table',
TABLE_ROWS AS 'Rows' 
FROM
information_schema.TABLES ;

Esta consulta retornará bancos de dados no servidor w.r.t. Tamanho * /

SELECT 
TABLE_SCHEMA  AS 'Database',
SUM((data_length + index_length) / (1024 * 1024)) AS 'Database_Size'
FROM information_schema.TABLES 
GROUP BY table_schema 
ORDER BY 'Database_Size' DESC 
LIMIT 5 ;
    
por 16.11.2015 / 13:17
0

Você pode tentar usar esta consulta:

select
  TABLE_SCHEMA,
  TABLE_NAME,
  (DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 AS SIZE
from information_schema.TABLES

mas você percebe que SIZE é menor que a soma do arquivo * .ibd e * .frm no disco. Isso ocorre porque quando você exclui a linha dos dados da tabela, ela não é excluída do arquivo. Para limpar o arquivo * .ibd você deve executar a consulta:

optimize table table_name

A melhor solução para isso é verificar o tamanho do arquivo para cada tabela e comparar com o tamanho do disco.

    
por 13.08.2015 / 11:15

Tags