Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-09-29 GMT+08:00

Tempo limite rápido do DDL

Para algumas operações DDL específicas, você pode configurar seu tempo de espera de bloqueio de metadados (MDL), impedindo que as operações DML subsequentes sejam bloqueadas.

Restrições

  • A versão do kernel é 2.0.45.230900 ou posterior.
  • Atualmente, as seguintes operações DDL são suportadas: ALTER TABLE, CREATE INDEX e DROP INDEX.

Ativação do tempo limite rápido de DDL

Tabela 1 Descrição do parâmetro

Parâmetro

Nível

Descrição

rds_ddl_lock_wait_timeout

Global, Session

Define quanto tempo uma operação DDL espera por um bloqueio na sessão atual ou nas sessões globais.

  • Intervalo de valores: 1 a 31536000 (s). Valor padrão: 31536000, indicando que a função está desativada.
  • O tempo limite de espera de bloqueio real para operações DDL é o menor valor entre lock_wait_timeout e este valor de parâmetro.
  • O tempo limite de bloqueio de tabela real durante a execução do DDL na camada InnoDB é o valor mínimo de innodb_lock_wait_timeout e esse valor de parâmetro. Bloqueios de linha não são considerados.

Exemplo

  1. Inicie um cliente e adicione um bloqueio para tabelas.
    Figura 1 Adição de um bloqueio
  2. Execute o seguinte comando para verificar o status da função de tempo limite rápido de DDL

    show variables like "%rds_ddl_lock_wait_timeout%";

    Figura 2 Consulta do status da função de tempo limite rápido de DDL

    Conforme mostrado na figura anterior, o valor de rds_ddl_lock_wait_timeout é 31536000 (valor padrão). A função está desativada. As operações subsequentes esperarão por um longo tempo.

    Para ativar a função, referindo-se a 3.

  3. Execute o seguinte comando para definir rds_ddl_lock_wait_timeout.

    set rds_ddl_lock_wait_timeout=1;

    Figura 3 Configuração de parâmetros
  4. Execute o seguinte comando para criar um índice. Verifica-se que a operação DDL expira rapidamente.
    alter table lzk.t_lzk drop index indexa;
    Figura 4 Criação de um índice