DEV Community

Mike Fortes
Mike Fortes

Posted on • Originally published at mromeiro-f.Medium on

Otimizando seu banco !

Otimizando seu banco !

Essa semana dei atenção a um problema que estava postergando a bastante tempo aqui onde trabalho, o MySQL.

Desde o inicio atestei que o ambiente estava crescendo de forma desordenada, e o banco estava uma bagunça, porem não tinha conhecimentos tão aprofundados em MySQL para manipular suas tabelas com segurança, ou efetuar qualquer tipo de procedimento sem medo de corromper tudo e perder o emprego (rs);

Fiz algumas pesquisas, e vi que como o Zabbix efetua muitas consultas de DELETE, o principal problema de crescimento, pode ser corrigido com alguns comandos simples.

Importante, aconselho utilizar os comandos abaixo apenas com seu Zabbix parado.

Check Table

Primeiramente o mais importante creio que seja verificar a saúde do seu banco ao todo. Com o “check table” você pode verificar erros e inconsistências nas tabelas;

Repair Table

Se o comando anterior detectar erros, é necessário utilizar o repair table;

Optimize Table

Normalmente o Zabbix efetua muitas operações de exclusão, deixando assim os registros desordenados. Com o optimize table, ele vai desfragmentar e liberar algum espaço da sua tabela.

Mas e como saber disso pode me ajudar?

Bem, o Zabbix é um monstro em leitura/escrita dentro do MySQL, sendo assim, sempre tem tabelas que podem ter espaço sendo desperdiçado, aguardando um optimize… a pergunta é, como saber quais tabelas posso fazer isso?

Ao logar no MySQL, selecione o banco utilizado pelo zabbix, e rode o comando abaixo:

SELECT TABLE_NAME, ROUND((DATA_LENGTH + INDEX_LENGTH)/1024/1024) AS USED_SPACE_MB, ROUND(DATA_FREE/1024/1024) AS UNUSED_SPACE_MB FROM INFORMATION_SCHEMA.TABLES WHERE ROUND(DATA_FREE/1024/1024) > 100 ORDER BY UNUSED_SPACE_MB DESC;

Ele vai mostrar todas as tabelas com mais de 100MB sem uso, prontas para seu deleite (rs). Depois é só dar um “optimize table ___ ;” e ver seu disco sendo liberado.

Top comments (0)