Questão de Banco de Dados — SGBD - Sistema de Gerenciamento de Banco de Dados — FUNDATEC 2025
Banco de Dados›SGBD - Sistema de Gerenciamento de Banco de Dados
Código
qg475067
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Nível
Superior
Cargo
Analista em Computação/Ênfase em Suporte em Banco de Dados
Assinale a alternativa correta sobre MySQL 8.
ASem --single-transaction, o mysqldump já garante snapshot consistente em InnoDB.
BCom --single-transaction, o mysqldump precisa bloquear tabelas com LOCK TABLES para obter consistência.
CCom --single-transaction, o mysqldump faz um dump consistente das tabelas InnoDB sem bloquear tabelas; não se aplica a engines não transacionais.
Dmysqldump é backup físico dos arquivos de dados.
Emysqldump lê dados “sujos” (dirty reads) de transações não confirmadas.
Revelar gabarito e comentário▾
GabaritoC — Com --single-transaction, o mysqldump faz um dump consistente das tabelas InnoDB sem bloquear tabelas; não se aplica a engines não transacionais.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
mysqldump e a opção --single-transaction no MySQL 8
Gabarito: letra C. Com --single-transaction, o mysqldump inicia uma transação e obtém um snapshot consistente do banco de dados InnoDB sem bloquear tabelas, utilizando o mecanismo de consistent read do InnoDB. Essa opção não se aplica a engines não transacionais, como MyISAM, que exigem bloqueio. Já sem --single-transaction, o mysqldump não garante snapshot consistente para InnoDB e, para consistência, precisa executar FLUSH TABLES WITH READ LOCK. A alternativa C descreve exatamente esse comportamento.
Alternativa
Afirmação sobre mysqldump no MySQL 8
Comportamento real
Correta?
A
Sem --single-transaction, já garante snapshot consistente em InnoDB.
❌ Sem a opção, usa FLUSH TABLES WITH READ LOCK (bloqueio), não snapshot automático.
❌
B
Com --single-transaction, precisa bloquear tabelas (LOCK TABLES) para consistência.
❌ Com a opção, usa consistent read do InnoDB (snapshot), sem bloquear tabelas InnoDB.
❌
C
Com --single-transaction, faz dump consistente de InnoDB sem bloquear; não se aplica a engines não transacionais.
❌ É backup lógico (SQL). Backup físico copia arquivos .ibd/.frm.
❌
E
mysqldump lê dados “sujos” (dirty reads) de transações não confirmadas.
❌ Com --single-transaction lê snapshot consistente; sem ele, usa bloqueios para evitar dirty reads.
❌
mysqldump: Com --single-transaction (InnoDB: snapshot consistente, Sem bloquear tabelas, Não se aplica a MyISAM); Sem --single-transaction (InnoDB: sem snapshot, Requer FLUSH TABLES WITH READ LOCK); Tipo de backup (Lógico (SQL), Físico (arquivos .ibd))
Alternativa A — ❌ Incorreta
Sem --single-transaction, o mysqldump não garante snapshot consistente para tabelas InnoDB. Para obter consistência, ele usa FLUSH TABLES WITH READ LOCK, que bloqueia todas as tabelas. A afirmação inverte a regra.
Alternativa B — ❌ Incorreta
Com --single-transaction, o mysqldump não precisa bloquear tabelas InnoDB — ele usa a funcionalidade de consistent read do InnoDB (snapshot de uma transação com isolamento REPEATABLE READ). O bloqueio com LOCK TABLES só é necessário para engines não transacionais. A alternativa afirma o oposto.
Alternativa C — ✅ Correta ⟵ GABARITO
Exato: com --single-transaction, o mysqldump faz um dump consistente das tabelas InnoDB sem bloquear, lendo um snapshot transaction. A ressalva "não se aplica a engines não transacionais" é fundamental, pois esses (ex.: MyISAM) não suportam transações e continuam sendo bloqueados.
Alternativa D — ❌ Incorreta
mysqldump é uma ferramenta de backup lógico que gera comandos SQL (CREATE, INSERT) para recriar o banco. Backup físico copia os arquivos de dados diretamente (ex.: mysqlbackup ou cp dos arquivos .ibd).
Alternativa E — ❌ Incorreta
mysqldump não realiza leituras sujas (dirty reads). Com --single-transaction, ele lê um snapshot consistente (dados confirmados até o início da transação). Sem ele, usa bloqueios para evitar leitura de dados não confirmados.
NÃO CAIA NESSA!
A banca explora a confusão entre o comportamento de mysqldump com e sem --single-transaction, e também mistura as engines. Lembre-se: InnoDB é transacional e suporta snapshot consistente sem bloqueio; MyISAM não. A pegadinha típica é afirmar que --single-transaction bloqueia ou que funciona para todas as engines.