Manual MyTable

MySQL • Compactar Tabela

A compactação ajuda a recuperar espaço e reduzir fragmentação lógica em tabelas que sofrem muitos UPDATE/DELETE. Use esta rotina em janelas programadas, especialmente em tabelas grandes e movimentadas.


Quando usar

  • Após exclusões em massa ou rotinas frequentes de limpeza (ex.: dados antigos).
  • Após muitas atualizações que deixam páginas internas “vazias”.
  • Quando o arquivo da tabela cresceu muito e não voltou a encolher naturalmente.

Dica: Combine a compactação com Analisar Tabela para atualizar estatísticas.


Abrir “Compactar Tabela”

  1. Conecte-se à sua conexão MySQL e escolha o banco.
  2. Na árvore, selecione a tabela desejada.
  3. No menu de ações, toque em Compactar Tabela.

O que a ação faz

  • Reorganiza os dados da tabela, reduzindo espaços internos não utilizados.
  • Dependendo do ambiente, a operação pode rebuildar a tabela (criando um arquivo novo e substituindo o antigo).
  • Como efeito, as páginas ficam mais contíguas e as leituras sequenciais tendem a melhorar.

Atenção: Em tabelas grandes, a compactação pode bloquear escritas por um período. Planeje janela.


Passo a passo

  1. Na tela da ação, confirme o nome da tabela e revise o aviso de impacto.
  2. (Opcional) Selecione executar também Atualizar Estatísticas ao final.
  3. Toque em Compactar e acompanhe o status.
  4. Ao terminar, o app exibirá um resumo (tempo, espaço recuperado* quando disponível).

*Nem todos os servidores reportam espaço recuperado com precisão; use como referência.


Boas práticas

  • Execute em horário de menor uso e comunique as áreas impactadas.
  • Mantenha backup recente da base/tabela antes da operação.
  • Após compactar, rode Analisar Tabela para reajustar estatísticas.
  • Monitore tempo e locks para escolher a melhor janela nas próximas vezes.

Limitações e observações

  • Com InnoDB, a recuperação de espaço no SO depende da configuração do servidor e do modo de rebuild. Alguns cenários apenas reorganizam páginas internas sem reduzir o arquivo físico.
  • Se a tabela é enorme, avalie executar por etapas (por partição) — veja Partições.

Erros comuns (e soluções)

“Tempo excedido / bloqueio prolongado”

  • Agende em horário ocioso. Para tabelas gigantes, considere particionar e compactar por partição.

“Espaço insuficiente durante a compactação”

  • Alguns rebuilds precisam de espaço temporário. Libere disco ou execute em ambiente com folga.

“Permissão negada”

  • É preciso privilégio para ALTER/OPTIMIZE na tabela. Solicite à TI se necessário.

Depois da compactação

  • Valide consultas-chave na tabela e confira latência média.
  • Se aplicável, rode Analisar Tabela.
  • Registre a execução em Logs & Auditoria (data, duração, impacto).

Próximo: MySQL • Analisar Tabela • Voltar: MySQL • Manutenção