A instrução DELETE não libera espaço em disco imediatamente. O MySQL apenas marca os registros ou páginas de dados como reutilizáveis. Para recuperar o espaço da tabela e reduzir o uso do disco, execute a instrução OPTIMIZE TABLE.
Pré-requisitos
A instrução
OPTIMIZE TABLEé compatível apenas com os mecanismos de armazenamento InnoDB e MyISAM.-
O espaço em disco disponível na instância deve ser maior ou igual ao tamanho da tabela a ser otimizada.
NotaSe o espaço em disco disponível for insuficiente, primeiro expanda o espaço em disco. Após a conclusão da otimização, reduza a escala conforme necessário. O sistema reembolsará a diferença de preço.
Observações de uso
Exclua uma grande quantidade de dados antes: O comando
OPTIMIZE TABLEsó reduz o uso do espaço da tabela se você excluir previamente uma quantidade significativa de dados com a instruçãoDELETE.Aumento temporário no uso de disco: A execução do
OPTIMIZE TABLEcria uma tabela temporária para reorganização dos dados, o que aumenta momentaneamente o consumo de disco. Essa tabela temporária é removida após a conclusão da operação, normalizando o uso do disco.Estatísticas da tabela e índices podem não mudar após a recuperação: Embora o espaço em disco seja liberado, as estatísticas da tabela podem não ser atualizadas imediatamente. Para mais informações, consulte Por que o uso de armazenamento da minha instância ApsaraDB RDS for MySQL permanece inalterado após executar OPTIMIZE TABLE?.
Impacto no desempenho e riscos em horários de pico: No ApsaraDB RDS for MySQL 5.7 e 8.0, o
OPTIMIZE TABLEutiliza DDL online, permitindo operações DML simultâneas. No entanto, otimizar uma tabela grande pode causar picos de I/O e uso de buffer. Isso gera bloqueios de tabela ou contenção de recursos, levando à indisponibilidade da instância ou interrupções no monitoramento durante horários de pico. Realize essa operação em horários de baixa demanda.
Uso da linha de comando
Conecte-se à instância ApsaraDB RDS for MySQL usando um cliente.
Use a instrução
DELETEpara remover dados desnecessários conforme suas necessidades de negócio.-
Execute a instrução
OPTIMIZE TABLEpara recuperar o espaço da tabela.OPTIMIZE TABLE <$Database1>.<Table1>,<$Database2>.<Table2>;Nota<$Database1> e <$Database2> são nomes de bancos de dados. <Table1> e <Table2> são nomes de tabelas.
-
Ao executar a instrução
OPTIMIZE TABLEno mecanismo de armazenamento InnoDB, o sistema retorna a seguinte mensagem. Essa mensagem é esperada e pode ser ignorada. A operação foi bem-sucedida se a saída contiver "ok". Para mais informações, consulte Instrução OPTIMIZE TABLE.Table does not support optimize, doing recreate + analyze instead
Uso do DMS
Faça login na instância ApsaraDB RDS for MySQL usando o DMS.
No painel de navegação à esquerda, selecione o ID da instância de destino, clique duas vezes no banco de dados desejado, clique com o botão direito em qualquer nome de tabela e selecione batch operation table.
Selecione as tabelas das quais deseja recuperar espaço e escolha .

Na caixa de diálogo exibida, confirme se as informações estão corretas e clique em OK.