Questão de Banco de Dados — MySQL — Avança SP 2023
Banco de Dados›MySQL
Código
qq836328
Banca
Avança SP
Órgão
Prefeitura de São Miguel Arcanjo - SP
Ano
2023
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Qual é o principal elemento necessário para otimizar o desempenho de uma consulta em banco de dados MySQL?
AChave primária
BChave estrangeira
CÍndice
DVínculo
EChave única
Revelar gabarito e comentário▾
GabaritoC — Índice
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”.
Otimização de consultas no MySQL
Gabarito: letra C. O principal elemento para otimizar o desempenho de uma consulta em um banco de dados MySQL é o índice, pois ele permite ao SGBD localizar rapidamente os registros relevantes sem varrer a tabela inteira. As chaves (primária, estrangeira, única) são estruturas de integridade e identificação, não ferramentas de otimização de consulta — embora a chave primária, por padrão, crie um índice, a finalidade dela é garantir unicidade, não acelerar buscas.
O índice é uma estrutura de dados auxiliar (geralmente uma árvore B+ ou uma tabela hash) que armazena uma cópia ordenada de uma ou mais colunas, apontando para as linhas correspondentes na tabela. Quando uma consulta filtra por uma coluna indexada, o MySQL usa o índice para encontrar as linhas em vez de percorrer todos os registros — o que reduz drasticamente o custo de I/O e o tempo de resposta. Sem índice, o SGBD precisa fazer uma varredura completa (full scan), lendo todas as linhas da tabela para verificar quais atendem ao critério.
Na prática, imagine uma tabela CLIENTE com 1 milhão de registros e uma consulta SELECT * FROM CLIENTE WHERE CPF = '123.456.789-00'. Sem índice, o MySQL leria os 1 milhão de registros para encontrar o CPF desejado. Com um índice criado na coluna CPF, o MySQL localiza o registro em pouquíssimas operações, pois o índice está ordenado e permite busca binária. É por isso que índices são a ferramenta primária de tuning de consultas em qualquer SGBD relacional, incluindo o MySQL.
A confusão comum é pensar que a chave primária, por ser única e obrigatória, é o que otimiza consultas. A chave primária garante a unicidade e a identificação de cada registro — ela é essencial para a integridade dos dados, mas não foi criada para acelerar consultas arbitrárias. A chave estrangeira estabelece relacionamentos entre tabelas, e a chave única garante que valores não se repitam em uma coluna. Nenhuma delas é, por si só, um mecanismo de otimização de desempenho de consultas — embora a chave primária e a chave única criem índices automaticamente, o conceito central de otimização é o índice, que pode ser criado em qualquer coluna, inclusive em colunas que não são chaves.
A pegadinha desta questão está em associar "desempenho de consulta" a "chave primária", quando o termo técnico correto é "índice". A banca explora a confusão entre estruturas de integridade (chaves) e estruturas de otimização (índices). Guarde a distinção: chaves = integridade e identificação; índices = desempenho e agilidade de busca. É exatamente essa fronteira que separa as alternativas.
Critério
Índice (C)
Chave Primária (A)
Chave Estrangeira (B)
Chave Única (E)
Função principal
Acelerar buscas e consultas
Identificar unicamente cada registro
Estabelecer relacionamento entre tabelas
Garantir que valores não se repitam
Objetivo
Otimização de desempenho
Integridade e identificação
Integridade referencial
Integridade e unicidade
Cria índice automaticamente?
Sim (é o próprio índice)
Sim
Não necessariamente
Sim
Uso em otimização de consultas
Direto e principal
Indireto (apenas se usado em filtros)
Indireto (em JOINs, se indexada)
Indireto (apenas se usado em filtros)
Pode ser criado em colunas que não são chaves?
Sim
Não
Não
Não
Alternativa A — ❌ Incorreta
A chave primária é um atributo (ou conjunto de atributos) que identifica unicamente cada registro de uma tabela, garantindo a propriedade da unicidade. Ela é fundamental para a integridade dos dados, mas não é o principal elemento de otimização de consultas. Embora a chave primária crie automaticamente um índice no MySQL, sua finalidade conceitual é a identificação, não a aceleração de buscas. A questão pergunta especificamente sobre otimização de desempenho, e o termo técnico correto é índice.
Alternativa B — ❌ Incorreta
A chave estrangeira é um atributo (ou conjunto de atributos) que estabelece uma relação lógica entre duas tabelas, referenciando a chave primária de outra tabela. Ela serve para associar registros e garantir a integridade referencial, não para otimizar consultas. Uma chave estrangeira pode até ser indexada para melhorar o desempenho de junções (JOINs), mas isso é uma prática de otimização que usa índices — a chave estrangeira em si não é o mecanismo de otimização.
Alternativa C — ✅ Correta ⟵ GABARITO
O índice é a estrutura de dados que permite ao SGBD localizar rapidamente os registros em uma tabela, agilizando consultas por meio da localização ágil de um registro. Ele é o principal elemento para otimizar o desempenho de consultas no MySQL, pois evita a varredura completa da tabela. Um índice pode ser criado em uma ou mais colunas, e o MySQL o utiliza para encontrar as linhas que atendem aos critérios da consulta de forma eficiente.
Alternativa D — ❌ Incorreta
"Vínculo" não é um termo técnico do modelo relacional para estruturas de otimização ou integridade. O conceito mais próximo seria o de relacionamento entre tabelas, que é estabelecido por chaves estrangeiras — mas isso não é um mecanismo de otimização de consultas. A alternativa é um distrator genérico, sem correspondência direta com os conceitos de banco de dados.
Alternativa E — ❌ Incorreta
A chave única (unique key) garante que os valores de uma coluna (ou conjunto de colunas) não se repitam, assegurando a unicidade dos dados. Assim como a chave primária, ela cria um índice automaticamente, mas sua finalidade é a integridade, não a otimização de consultas. O conceito de otimização de desempenho é o índice, que pode ser criado independentemente de ser uma chave.
PEGA ESSA DICA!
Para questões sobre otimização de consultas, lembre-se: índice = desempenho; chave = integridade. Quando a pergunta falar em "agilizar", "acelerar", "otimizar" ou "melhorar o desempenho" de consultas, a resposta quase sempre será índice. Chaves primária, estrangeira e única são estruturas de integridade e identificação — elas podem até gerar índices, mas o conceito central de otimização é o índice.