← MySQL: desenvolvimento e operação segura
05 / 12 · 40 MIN

Schema, DDL e aceitação da release

Planeia compatibilidade, locks e recuperação antes de alterar estrutura.

Conceito e mecanismo

DDL não partilha automaticamente as garantias de rollback esperadas de DML. ALTER TABLE causa implicit commit; executar UPDATE e ALTER na mesma sessão não cria uma única unidade reversível por ROLLBACK. Atomic DDL protege a consistência de operações suportadas, sem transformar DDL em transações controladas livremente pelo utilizador. Existem exceções específicas, como CREATE TEMPORARY TABLE sem implicit commit, cuja criação também não é desfeita por rollback. O algoritmo de alteração define trabalho físico e concorrência possível. INSTANT, INPLACE e COPY têm capacidades distintas, dependentes da operação e estrutura da tabela.

Aplicação guiada

Num rollout fictício, remover uma coluna rapidamente pode quebrar instâncias antigas ainda ativas. Introduz compatibilidade, migra utilização e dados, confirma consumidores e só depois retira a estrutura antiga. Se INSTANT for rejeitado, reavalia tempo, espaço e locks antes de aceitar outro algoritmo. Online DDL também precisa de metadata locks: uma transação antiga que apenas leu a tabela pode atrasar a mudança. Define prazo máximo, owner da transação e critério de adiamento. A aceitação deve verificar schema, aplicação, impacto no batch e caminho de retorno. Backup e mudança inversa não significam que o rollback seja imediato ou sem reconciliação.

NA PRÁTICA

Uma transação após SELECT pode reter metadata lock e bloquear ALTER TABLE até terminar.

Armadilhas comuns

Atomic como rollback livre; INSTANT como compatível; online como sem locks; remover algoritmo sem medir impacto.

Tópicos relacionados: Tipos e contratos dos dados · Consultas determinísticas e planos · Transações InnoDB e caminhos de erro

Leva esta ideia contigo

A release precisa de compatibilidade funcional e de uma janela operacional demonstrada.

Criar conta

Referência: DDL and implicit commits · MySQL 9.7 LTS with InnoDB reference semantics

MySQL® é uma marca registada da Oracle e/ou das suas afiliadas. A dr.pt é uma plataforma de preparação independente e não está afiliada, associada, patrocinada, autorizada nem aprovada por Oracle. Os conteúdos e as perguntas são originais, não são perguntas oficiais de exame, e concluir os nossos testes não atribui nem garante qualquer certificação. Os nomes são usados apenas para identificar o tema. Todas as outras marcas pertencem aos respetivos titulares.