Todos os produtos
Search
Central de documentação

PolarDB:Instant column addition at the end of a table

Última atualização: Jun 28, 2026

Adicione uma coluna a uma tabela de qualquer tamanho em segundos, independentemente do volume de dados.

O PolarDB for MySQL usa o algoritmo INSTANT para essa operação DDL. Ele modifica apenas os metadados no dicionário de dados, sem alterar ou copiar dados históricos e sem reconstruir a tabela.

Versões compatíveis

Versão

Revisão mínima

Observações

PolarDB for MySQL 8.0

Qualquer

Ativado por padrão. Nenhuma configuração necessária.

PolarDB for MySQL 5.7

5.7.1.0.6

Ative o parâmetro loose_innodb_support_instant_add_column antes de usar.

PolarDB for MySQL 5.6

5.6.1.0.43

Disponível em versão canary. Solicite acesso pelo Quota Center usando a cota polardb_mysql_iac_56.

Para verificar o número de revisão do seu cluster, consulte Verificar o número da versão.

Limitações

Limitação

Detalhes

Posição da coluna

A nova coluna deve ser a última da tabela.

Colunas virtuais

Compatível com a versão 8.0. Incompatível com as versões 5.6 e 5.7.

Tabelas particionadas

Incompatível com a versão 5.6. Compatível com as versões 5.7 e 8.0. Na versão 5.7, este recurso está em versão canary. Solicite acesso pelo Quota Center usando a cota polarM_57_iac_on_partition_table.

Índices de texto completo

Tabelas com índices de texto completo não são compatíveis.

Tabelas compactadas

Tabelas com ROW_FORMAT=COMPRESSED não são compatíveis.

Tabelas com In-Memory Column Indexes (IMCI)

Nas versões 8.0.1.1.42 e anteriores, ou 8.0.2.2.23 e anteriores: defina imci_enable_add_column_instant_ddl como ON. Quando ativada, a adição instantânea de coluna aciona uma reconstrução silenciosa do IMCI em segundo plano. O IMCI fica indisponível durante a reconstrução. Nas versões 8.0.1.1.42 e posteriores, ou 8.0.2.2.23 e posteriores: defina imci_enable_add_column_instant_ddl como OFF.

Tabelas com chaves primárias implícitas

Tabelas com implicit_primary_key ativado exigem uma chave primária personalizada.

Instruções DDL combinadas

Não é possível combinar a adição instantânea de coluna com outras operações DDL (como adicionar um índice) na mesma instrução ALTER TABLE.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um cluster PolarDB for MySQL executando uma versão compatível

  • Para PolarDB for MySQL 5.6: acesso à cota via Quota Center

  • Para PolarDB for MySQL 5.7: o parâmetro loose_innodb_support_instant_add_column definido como ON

Ativar a adição instantânea de coluna (apenas 5.6 e 5.7)

Clusters PolarDB for MySQL 8.0 oferecem suporte à adição instantânea de coluna por padrão. Para clusters 5.6 e 5.7, ative o seguinte parâmetro:

Parâmetro

Nível

Descrição

loose_innodb_support_instant_add_column

Global

Ativa ou desativa a adição instantânea de coluna. Valores válidos: ON (ativado) e OFF (padrão, desativado).

Para obter instruções sobre como definir parâmetros, consulte Ativar um parâmetro.

Adicionar uma coluna instantaneamente

Forçar o algoritmo INSTANT

Especifique ALGORITHM=INSTANT para garantir que a operação use o algoritmo INSTANT:

ALTER TABLE <table_name> ADD COLUMN <column_name> int, ALGORITHM=INSTANT;

Se o cluster ou a tabela não oferecer suporte à adição instantânea de coluna, a instrução retornará:

ERROR 0A000: ALGORITHM=INSTANT is not supported for this operation. Try ALGORITHM=COPY/INPLACE.

Caso encontre esse erro, verifique se loose_innodb_support_instant_add_column está ativado e revise as Limitações.

Permitir que o PolarDB selecione o algoritmo automaticamente

Omita a cláusula ALGORITHM ou especifique ALGORITHM=DEFAULT para permitir que o PolarDB selecione o algoritmo mais rápido disponível. O PolarDB avalia os algoritmos nesta ordem: INSTANT > INPLACE > COPY.

ALTER TABLE <table_name> ADD COLUMN <column_name> int, ALGORITHM=DEFAULT;
ALTER TABLE <table_name> ADD COLUMN <column_name> int;

Verificar se o algoritmo INSTANT foi usado

PolarDB for MySQL 5.6 e 5.7

Consulte a tabela INNODB_SYS_INSTANT_COLUMNS em INFORMATION_SCHEMA. Essa tabela armazena nomes de colunas, posições ordinais e valores padrão (em formato binário) para colunas adicionadas com o algoritmo INSTANT:

SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INSTANT_COLUMNS;
Nota

Se você executar posteriormente uma operação DDL que acione a reconstrução da tabela (como OPTIMIZE TABLE), o PolarDB reconstruirá fisicamente a tabela. As colunas INSTANT serão convertidas em colunas regulares e seus dados serão totalmente preservados. Os registros correspondentes serão removidos de INNODB_SYS_INSTANT_COLUMNS.

PolarDB for MySQL 8.0

Consulte INFORMATION_SCHEMA.INNODB_COLUMNS e verifique a coluna has_default. Um valor de 1 indica que a coluna foi adicionada com o algoritmo INSTANT:

SELECT * FROM INFORMATION_SCHEMA.INNODB_COLUMNS
WHERE TABLE_ID = (
  SELECT TABLE_ID FROM INFORMATION_SCHEMA.INNODB_TABLES
  WHERE NAME = "<database_name>/<table_name>"
);

Próximos passos

Fale conosco

Se tiver alguma dúvida sobre operações DDL, entre em contato com o suporte técnico.