Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Limitação de DDL

Última atualização: Jun 26, 2026

O AliSQL oferece suporte à limitação de DDL, o que permite definir limites máximos de BPS e IOPS para operações DDL. Esse controle sobre o consumo de recursos de E/S ajuda a garantir a estabilidade dos seus serviços online.

Visão geral

Contexto: O MySQL Community Edition não limita operações DDL, o que pode causar alto consumo de E/S. Esse problema é mais evidente no MySQL 8.0, em que o DDL paralelo pode aumentar ainda mais o uso de E/S e afetar seus serviços online.

Introdução: O AliSQL implementa a limitação de DDL ao estender a lógica de execução de DDL do MySQL Community Edition. Esse recurso permite definir limites de BPS e IOPS para operações DDL individuais. Limitar o consumo de recursos de E/S dessa forma evita picos de E/S e ajuda a manter a estabilidade dos seus serviços online.

Pré-requisitos

Para usar a limitação de DDL, sua instância deve atender a um dos seguintes requisitos de versão:

  • MySQL 8.4

  • MySQL 8.0 com versão secundária do mecanismo 20251031 ou posterior

Se sua instância não atender a esses requisitos, atualize a versão secundária do mecanismo ou a versão principal do mecanismo.

Parâmetros

Detalhes dos parâmetros

Use o parâmetro loose_innodb_ddl_io_limit_enabled para ativar ou desativar o recurso de limitação de DDL. Após ativar o recurso, utilize o parâmetro innodb_ddl_bps_limit para definir o limite de BPS e o parâmetro innodb_ddl_iops_limit para definir o limite de IOPS.

Parâmetro

Descrição

loose_innodb_ddl_io_limit_enabled

  • Descrição: Ativa ou desativa o recurso de limitação de DDL.

  • Escopo: Global.

  • Tipo de dados: Boolean.

  • Valor padrão: OFF.

  • Valores válidos: ON ou OFF.

  • Reinicialização necessária: Não.

innodb_ddl_bps_limit

  • Descrição: Define o limite de BPS.

  • Escopo: Sessão.

  • Tipo de dados: LONG.

  • Valor padrão: 0 (sem limite de BPS).

  • Valores válidos: 0 a 18446744073709551615.

  • Reinicialização necessária: Não.

innodb_ddl_iops_limit

  • Descrição: Define o limite de IOPS.

  • Escopo: Sessão.

  • Tipo de dados: LONG.

  • Valor padrão: 0 (sem limite de IOPS).

  • Valores válidos: 0 a 18446744073709551615.

  • Reinicialização necessária: Não.

Modificar parâmetros

  1. Acesse a página Instances. Na barra de navegação superior, selecione a região onde a instância RDS está localizada. Em seguida, localize a instância RDS e clique no ID da instância.

  2. No painel de navegação à esquerda, clique em Parameter Settings.

  3. Na aba Editable Parameters, localize o parâmetro desejado e defina seu valor.

  4. Clique em OK e depois em Submit Parameters. Na caixa de diálogo exibida, especifique quando as alterações entrarão em vigor.

Procedimento

  1. Ative o recurso de limitação de DDL

    Siga as instruções na seção "Modificar parâmetros" para definir o parâmetro loose_innodb_ddl_io_limit_enabled como ON no console RDS e envie a alteração.

  2. Defina os limites de BPS e IOPS

    Após ativar a limitação de DDL, configure os limites de BPS e IOPS em uma sessão antes de executar uma instrução DDL. É possível aplicar um limite ao BPS, ao IOPS ou a ambos.

    # Limit the BPS for DDL operations to 100 MB.
    SET SESSION innodb_ddl_bps_limit = 100 * 1024 * 1024;
    
    # Limit the IOPS for DDL operations to 5,000.
    SET SESSION innodb_ddl_iops_limit = 5000;

Exemplo

Este exemplo compara o consumo de E/S de uma instância ao executar uma instrução DDL diretamente com a execução da mesma instrução com a limitação ativada.

# 1. Run the DDL statement directly.
ALTER TABLE t1 ADD INDEX idx_1(c1);
ALTER TABLE t1 DROP INDEX idx_1;
OPTIMIZE TABLE t1;

# 2. Set the BPS limit to 160 MB.
SET SESSION innodb_ddl_bps_limit = 160 * 1024 * 1024;
ALTER TABLE t1 ADD INDEX idx_1(c1);
ALTER TABLE t1 DROP INDEX idx_1;
OPTIMIZE TABLE t1;

image.png