🔥 Por que sua tabela nunca diminui (e quando usar OPTIMIZE TABLE)

“Ok… entendi tudo.
Mas como eu recupero espaço de verdade?”
 

🧠 Resumo da série até aqui (em 10 segundos)….

👉 DELETE não remove espaço físico
👉 MVCC mantém versões
👉 Undo Log guarda histórico
👉 Purge limpa versões antigas

💥 Mas nada disso devolve espaço pro disco.

 

📦 1. O problema real

Quando nós fazemos:

👉 o que acontece:

  • dados saem
  • espaço fica interno
  • arquivo continua do mesmo tamanho

👉 Resultado:

🧱 tabela “vazia”, mas ocupando GB no disco.

 

⚙️ 2. Por que isso acontece?

Porque o InnoDB:

  • trabalha com páginas fixas
  • reaproveita espaço internamente
  • não remove páginas do arquivo

👉 Traduzindo:

O espaço vira “livre dentro da tabela”, mas NÃO volta pro sistema….

 

💥 3. Como recuperar espaço de verdade

✅ Opção 1 — OPTIMIZE TABLE.

👉 O que ele faz:

  • recria a tabela.
  • reorganiza os dados.
  • remove fragmentação.
  • devolve espaço pro disco.

⚠️ Problema

  • pode travar a tabela.
  • copia tudo de novo.
  • pode demorar MUITO.

👉 Em tabela grande = dor 😅

 

⚙️ 4. O que realmente acontece por trás

O OPTIMIZE basicamente:

 

🚨 5. Quando usar OPTIMIZE TABLE

Use quando:

✅ deletou MUITOS dados.
✅ tabela ficou fragmentada.
✅ espaço em disco é problema.

 

❌ Quando NÃO usar

Evite em produção se:

  • tabela é muito grande.
  • sistema não pode parar.
  • não tem espaço extra disponível.

 

🚀 6. Alternativas melhores (produção).

🔹 Recreate manual

 

🧠 Insight final (o mais importante da série)

  • DELETE limpa os dados.
  • MVCC protege consistência.
  • Purge limpa versões.

💥 Mas só REBUILD devolve espaço.

Se tem uma coisa pra levar dessa série:

“No MySQL, apagar dado é fácil… liberar espaço é outra história.”

 

Referências.

MySQL Docs – Optimize Table

Passo a Passo -> Optimize Table

 

COMPARTILHE:
Picture of Henrique Borba Garcia

Henrique Borba Garcia

Iniciei meus estudos na área de Desenvolvimento no ano de 2021. Atualmente, em MySQL tenho uma experiência de 5 anos, e com bancos não relacionais (MongoDB) 2 anos. Desempenho o papel de LÍDER TÉCNICO para ambas as técnologias. Sou bastante persistente e proativo em diversos assuntos em banco de dados. Minhas certificações. . MySQL 2025 Solution Enginner Specialist Assessment. . MySQL Database Administrator 8.0 . MySQL Database Developer 8.0 . OCI Foundations 2021, 2022, 2023, e 2024. . MySQL Database Service . MySQL Explorer. . SQL Explorer. . Oracle Cloud Data Management 2023
Picture of Henrique Borba Garcia

Henrique Borba Garcia

Iniciei meus estudos na área de Desenvolvimento no ano de 2021. Atualmente, em MySQL tenho uma experiência de 5 anos, e com bancos não relacionais (MongoDB) 2 anos. Desempenho o papel de LÍDER TÉCNICO para ambas as técnologias. Sou bastante persistente e proativo em diversos assuntos em banco de dados. Minhas certificações. . MySQL 2025 Solution Enginner Specialist Assessment. . MySQL Database Administrator 8.0 . MySQL Database Developer 8.0 . OCI Foundations 2021, 2022, 2023, e 2024. . MySQL Database Service . MySQL Explorer. . SQL Explorer. . Oracle Cloud Data Management 2023

PARTICIPE

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

POSTADO POR
Picture of Henrique Borba Garcia

Henrique Borba Garcia

Iniciei meus estudos na área de Desenvolvimento no ano de 2021. Atualmente, em MySQL tenho uma experiência de 5 anos, e com bancos não relacionais (MongoDB) 2 anos. Desempenho o papel de LÍDER TÉCNICO para ambas as técnologias. Sou bastante persistente e proativo em diversos assuntos em banco de dados. Minhas certificações. . MySQL 2025 Solution Enginner Specialist Assessment. . MySQL Database Administrator 8.0 . MySQL Database Developer 8.0 . OCI Foundations 2021, 2022, 2023, e 2024. . MySQL Database Service . MySQL Explorer. . SQL Explorer. . Oracle Cloud Data Management 2023
PARCEIROS