Todos os produtos
Search
Central de documentação

ApsaraDB RDS:DDL mais rápido

Última atualização: Jul 15, 2026

Este tópico descreve o recurso DDL mais rápido, que oferece um mecanismo otimizado de gerenciamento de buffer pool. Esse mecanismo reduz o impacto das operações de linguagem de definição de dados (DDL) e aumenta o número de operações DDL simultâneas permitidas.

Pré-requisitos

A instância RDS deve executar uma das seguintes versões do MySQL:

Informações básicas

Operações DDL são comuns em instâncias RDS. Durante o uso da instância, você pode encontrar problemas relacionados a essas operações, como:

  • Por que a adição de índices causa oscilação de desempenho e interrompe as operações de leitura e gravação na instância RDS?

  • Por que uma operação DDL em uma tabela com menos de 1 GB leva mais de 10 minutos para ser concluída?

  • Por que ocorre oscilação de desempenho ao fechar uma conexão que gera tabelas temporárias?

A equipe do mecanismo de banco de dados do ApsaraDB for RDS realizou análises profundas e testes intensivos para identificar a causa desses problemas. Com base nos resultados, a equipe detectou defeitos na lógica de manutenção de cache usada no gerenciamento de operações DDL. Para corrigir essas falhas, desenvolveu-se o recurso DDL mais rápido. O mecanismo otimizado de gerenciamento de buffer pool fornecido por esse recurso reduz a contenção de locks acionados por operações DDL. Isso garante a manutenção do desempenho da instância RDS durante a execução de operações DDL sob carga de trabalho normal.

Ative o DDL mais rápido

Para ativar o recurso DDL mais rápido, defina o parâmetro loose_innodb_rds_faster_ddl como ON no console do ApsaraDB for RDS. Para obter mais informações, consulte Modifique parâmetros da instância.

Teste com operações DDL

  • Cenário de teste

    Use o algoritmo in-place para executar operações DDL online pelos seguintes comandos compatíveis com o MySQL 8.0: CREATE INDEX e OPTIMIZE TABLE. O comando CREATE INDEX cria um índice em uma tabela sem reconstruí-la. Já o comando OPTIMIZE TABLE cria um índice e exige a reconstrução da tabela.

    Operação

    Instant

    In-place

    Reconstrói a tabela

    Permite operações DML simultâneas

    Modifica apenas metadados

    CREATE INDEX

    No

    Yes

    No

    Yes

    No

    OPTIMIZE TABLE

    No

    Yes

    Yes

    Yes

    No

  • Instância de teste

    A instância RDS usada no teste executa o MySQL 8.0, possui 8 núcleos de CPU e 64 GB de memória. A tabela alvo das operações DDL tem 600 MB.

  • Procedimento de teste

    Execute um teste de estresse com o SysBench. Nesse teste, realize operações DDL online e compare os resultados.

  • Resultado do teste

    Operação

    Duração média de execução (DDL mais rápido desativado)

    Duração média de execução (DDL mais rápido ativado)

    Aumento de desempenho (vezes)

    CREATE INDEX

    56 segundos

    4,9 segundos

    11,4

    OPTIMIZE TABLE

    220 segundos

    17 segundos

    12,9

  • Resumo do teste

    O recurso DDL mais rápido permite que o ApsaraDB RDS for MySQL com AliSQL reduza o tempo de execução de operações DDL em mais de 90% em comparação ao MySQL Community Edition.

Teste com tabelas temporárias

Tabelas temporárias são comuns no MySQL. O sistema as cria, por exemplo, para consultar tabelas do banco de dados information_schema ou acelerar a execução de instruções SQL complexas. Quando um thread é encerrado, todas as tabelas temporárias associadas são excluídas. Trata-se de um tipo específico de operação DDL que causa oscilação de desempenho na instância RDS. Para mais detalhes, consulte Temp ibt tablespace truncation at disconnection stuck InnoDB under large BP.

  • Instância de teste

    A instância RDS usada no teste executa o MySQL 8.0, com 8 núcleos de CPU e 64 GB de memória.

  • Procedimento de teste

    Realize um teste de estresse com o tpcc-mysql. Execute consultas até que o buffer pool atinja capacidade próxima do máximo. Em seguida, inicie requisições single-threaded em conexões de curta duração para gerar tabelas temporárias.

  • Resultado do teste

    Item de comparação

    Sem operações DDL

    DDL mais rápido ativado

    DDL mais rápido desativado

    Transações por segundo (TPS)

    42.000

    40.000

    < 10.000

    A figura abaixo apresenta os dados de desempenho por segundo obtidos no teste de estresse. As áreas destacadas em vermelho indicam o TPS suportado pela instância RDS quando o recurso DDL mais rápido está desativado.

    TPS

  • Resumo do teste

    No MySQL nativo, sempre que um thread gerador de tabelas temporárias é encerrado, ocorre uma severa oscilação de desempenho, reduzindo o TPS em mais de 70%. Com o recurso DDL mais rápido ativado, essa redução no TPS cai para apenas 5%.

Efeito da otimização

O recurso DDL mais rápido é compatível com as versões 5.6, 5.7 e 8.0 do MySQL. No entanto, as operações DDL suportadas variam conforme a versão selecionada.

Categoria Operação DDL MySQL 5.6 MySQL 5.7 MySQL 8.0
DDL in-place Para mais informações, consulte Operações DDL Online do MySQL 8.0 e Operações DDL Online do MySQL 5.7. No Yes Yes
Gerenciamento de tablespace Ativa ou desativa a criptografia do tablespace. No Yes Yes
Libera ou exclui um tablespace. No Yes Yes
Descarta um tablespace. Yes Yes Yes
Exclusão de tabela Libera ou exclui uma tabela. Yes Yes Yes
Operação de undo Libera ou exclui um undo tablespace. No No Yes
Atualização de tabela Atualiza uma tabela e suas páginas sujas (dirty pages). Yes Yes Yes

Defeitos corrigidos pelo DDL mais rápido

O recurso DDL mais rápido corrige os seguintes defeitos: