A execução frequente de instruções INSERT, UPDATE e DELETE em um banco de dados MySQL faz com que os dados deixem de ser armazenados de forma contínua no disco, gerando fragmentos de tablespace. Esses fragmentos degradam o desempenho do banco de dados. Operações comuns para recuperar esses fragmentos, como a execução da instrução OPTIMIZE TABLE, podem bloquear a tabela e afetar seus negócios. O recurso de alteração sem bloqueio do Data Management (DMS) recupera automaticamente os fragmentos de tablespace e evita que tabelas bloqueadas impactem suas operações durante mudanças no banco de dados. Isso melhora o desempenho e a eficiência do banco de dados, além de reduzir custos de armazenamento. Este tópico descreve como enviar um ticket de alteração de schema sem bloqueio no DMS para recuperar fragmentos de tablespace automaticamente.
Pré-requisitos
Você tem permissão para alterar tabelas no banco de dados onde deseja desfragmentar o espaço. Para mais informações, consulte Visualize suas permissões e Gerencie permissões.
O recurso de alteração de schema sem bloqueio está ativado na instância de banco de dados MySQL. Para mais informações, consulte Ative alteração de schema sem bloqueio.
Observações de uso
Ao recuperar fragmentos de tablespace de uma tabela grande, garanta que o espaço de armazenamento disponível na instância seja pelo menos duas a três vezes maior que o tamanho da tabela de destino. Monitore atentamente o espaço de armazenamento disponível na instância durante a operação.
A recuperação de fragmentos de tablespace em uma tabela grande pode exigir uma cópia temporária dos dados, o que ocupa armazenamento extra. Se o espaço restante na instância de banco de dados for insuficiente, o DMS pode falhar ao recuperar os fragmentos ou a instância pode ficar bloqueada.
O DMS recupera fragmentos de tablespace executando instruções DDL para alterar schemas sem bloquear tabelas. A taxa de sucesso na execução das instruções não atinge 100%.
Visualize o tamanho dos fragmentos de tablespace
Verifique o tamanho dos fragmentos de tablespace executando a seguinte instrução SQL no SQL Console do DMS: SHOW TABLE STATUS LIKE 'table_name';. Para instruções detalhadas sobre o uso do SQL Console, consulte SQL Console.
Nos resultados da consulta, a coluna Data_free indica a quantidade de espaço fragmentado na tabela, medida em bytes.
Procedimento
Faça login no DMS 5.0.
-
Na barra de navegação superior, escolha Database Development > Data Change > Lock-free Change.
NotaSe você utiliza o console do DMS no modo simples, clique em ícone
no canto superior esquerdo e escolha . -
Configure um ticket de alteração de schema sem bloqueio. Para mais informações, consulte Executar alterações de schema sem bloqueio usando tickets de alteração sem bloqueio.
Após ativar o recurso de alteração de schema sem bloqueio para uma instância, qualquer ticket desse tipo enviado recuperará automaticamente os fragmentos de tablespace. No entanto, para uma recuperação mais estável e com menor impacto nas tabelas relacionadas, recomendamos usar uma das seguintes instruções SQL no ticket para reorganizar explicitamente a tabela:
OPTIMIZE TABLE table_name;ALTER TABLE table_name COMMENT 'The new comment for the table';ALTER TABLE table_name ENGINE=InnoDB;-
ALTER TABLE table_name MODIFY COLUMN field_name INT COMMENT 'The new comment for the field';NotaEmbora essas instruções SQL recuperem espaço, uma operação sem bloqueio no DMS (incluindo
OPTIMIZE TABLE) pode não ser tão completa quanto o comando nativoOPTIMIZE TABLE.