De maneira bem breve, vou listar 4 comandos MySQL relacionados à manutenção dos seus bancos de dados. Neste texto, serão descritos de forma bem sucinta e rápida. É mais ou menos um lembrete para quem é administrador iniciante e ainda não criou os bons hábitos de verificação dos seus bancos de dados.
Check table
Com suporte ao MyISAM e ao InnoDB, o comando CHECK TABLE pode ser usado para verificar erros e inconsistências nas tabelas.
Sua sintaxe é simples mas você precisa ter privilégios adequados para poder rodar este comando:
CHECK TABLE projetos QUICK;
+-------------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+-------------------+-------+----------+----------+
| clientes.projetos | check | status | OK |
+-------------------+-------+----------+----------+
1 row in set (0.09 sec)
Repair table
Se houver erros detectados por CHECK TABLE, será necessário usar o REPAIR na sua tabela.
REPAIR TABLE projetos;
+-------------------+--------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+-------------------+--------+----------+----------+
| clientes.projetos | repair | status | OK |
+-------------------+--------+----------+----------+
1 row in set (0.00 sec)
Analyze table
Este comando (exemplo abaixo) analisa e armazena a distribution key da tabela. Enquanto isto, ele a trava, impedindo que seja alterada temporariamente – ela só pode ser lida.
O que é distribution key
Uma distribution key ou chave de distribuição é uma coluna (ou grupo de colunas) usada para determinar a partição do banco de dados em que um registro, em particular, será armazenado.
Você define uma distribution key em uma tabela através do comando CREATE TABLE.
ANALYZE TABLE projetos;
+-------------------+---------+----------+-----------------------------+
| Table | Op | Msg_type | Msg_text |
+-------------------+---------+----------+-----------------------------+
| clientes.projetos | analyze | status | Table is already up to date |
+-------------------+---------+----------+-----------------------------+
1 row in set (0.01 sec)
Optimize table
Se você executa muitas operações de remoção de registros (DELETE), provavelmente precisará da declaração OPTIMIZE TABLE para fazer uso de espaços liberados e desfragmentar o arquivo de dados.
OPTIMIZE TABLE projetos;
+-------------------+----------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+-------------------+----------+----------+----------+
| clientes.projetos | optimize | status | OK |
+-------------------+----------+----------+----------+
1 row in set (0.04 sec)
One reply on “MySQL: comandos para manutenção do banco de dados”
Eu posso executar o Optimize com o sistema em operação?