No contexto do MySQL, analise as afirmativas a seguir a resp...

Próximas questões
Com base no mesmo assunto
Q1933260 Banco de Dados
No contexto do MySQL, analise as afirmativas a seguir a respeito da carga de dados (Bulk Data Loading) para tabelas InnoDB.
I. No caso da existência de restrições (constraints) do tipo UNIQUE, é possível suspender temporariamente a verificação com o comando SET unique_checks=1.
II. Tabelas InnoDB utilizam índices clusterizados, o que normalmente torna mais rápida a carga de dados dispostos na mesma ordem da chave primária (primary key).
III. Na carga de arquivos muito grandes, a shell do MySQL oferece serviços de importação rápida por meio do utilitário util.importTable().
Está correto somente o que se afirma em:3
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito Correto: E - II e III.

Vamos entender o porquê desta ser a alternativa correta.

II. Tabelas InnoDB utilizam índices clusterizados, o que realmente torna mais rápida a carga de dados se eles estiverem dispostos na mesma ordem da chave primária. Isso acontece porque, em índices clusterizados, os dados físicos na tabela são ordenados com base na chave primária, o que otimiza tanto a inserção de dados sequenciais quanto as operações de leitura baseadas nessa chave.

III. Na carga de arquivos muito grandes, a shell do MySQL de fato oferece funcionalidades que permitem a importação rápida, como o utilitário util.importTable(). Esse utilitário é especialmente desenhado para lidar com grandes volumes de dados de forma eficiente, aproveitando as capacidades do servidor MySQL.

Agora, precisamos entender por que as outras afirmativas estão incorretas:

I. No caso da existência de restrições do tipo UNIQUE, não é possível suspender temporariamente a verificação com o comando SET unique_checks=1. Na verdade, o que o comando faz ao ser setado para 0 (SET unique_checks=0) é desativar temporariamente a checagem para operações em massa, o que pode melhorar o desempenho. Por padrão, o valor é 1, o que significa que as checagens estão ativadas. Portanto, a afirmação I está invertida e por isso é incorreta.

Entender esses conceitos é crucial para otimizar o desempenho do banco de dados e realizar operações de grande volume, o que é uma habilidade essencial para administradores de banco de dados, especialmente em contextos de alto desempenho ou grandes quantidades de dados.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Copiando da documentação oficial:

(I): If set to 1 (the default), uniqueness checks for secondary indexes in InnoDB tables are performed. If set to 0, storage engines are permitted to assume that duplicate keys are not present in input data. If you know for certain that your data does not contain uniqueness violations, you can set this to 0 to speed up large table imports to InnoDB.

Setting this variable to 0 does not require storage engines to ignore duplicate keys. An engine is still permitted to check for them and issue duplicate-key errors if it detects them.

(II): When you define a PRIMARY KEY on a table, InnoDB uses it as the clustered index. A primary key should be defined for each table. If there is no logical unique and non-null column or set of columns to use a the primary key, add an auto-increment column. Auto-increment column values are unique and are added automatically as new rows are inserted.

(III): MySQL Shell's parallel table import utility util.importTable() provides rapid data import to a MySQL relational table for large data files. The utility analyzes an input data file, distributes it into chunks, and uploads the chunks to the target MySQL server using parallel connections.

Acho que a pegadinha estava em reparar no 0 do item I e parece que o item III está disponível apenas no MySQL 8. Gabarito: E.

confesso que tive bastante dificuldade até para entender o que é InnoDB , quanto mais para fazer a questão

fazendo uma consulta à internet entendi que InnoDB se trata de um Storage Engine para o MySQL.

Mas o que é isso ?

esse mecanismo fornece padrões de transações complacentes com ACID. Ou seja , basicamente ele vai verificar se as transações atendem aos requisitos de Atomicidade , Consistência, Isolamento e Durabilidade.

basicamente foi isso que entendi, caso tenha comentado algo errado , por favor me corrijam.

obrigado

Complementando:

O comando correto para suspender temporariamente a verificação de restrições do tipo UNIQUE é:

SET unique_checks = 0;

Ao definir unique_checks como 0, o MySQL suspende temporariamente a verificação de chaves únicas (constraints do tipo UNIQUE), o que pode acelerar o processo de inserção de grandes volumes de dados (bulk loading). No entanto, após o término da operação, é essencial reativar essa verificação com:

SET unique_checks = 1;

Esse processo pode ser útil para carregar dados em massa, mas deve ser feito com cautela, pois durante o período em que as verificações estão desativadas, dados duplicados podem ser inseridos, o que pode levar a inconsistências.

Portanto, a afirmação está errada, pois menciona o valor 1 ao invés de 0 para suspender a verificação.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo