← Questões de Banco de Dados

Banco de Dados · FGV · 2022

Questão comentada de Banco de Dados

Considere o comando a seguir, num ambiente MySQL. select * from xpto where match (campo) against ( 'busca' ) Os operadores utilizados supõem a existência de índices do tipo

Gabarito: B

No MySQL, a expressão match(campo) against('busca') é usada para pesquisa textual em colunas com suporte a busca em texto completo. Isso não é um simples filtro com LIKE: o mecanismo foi pensado para localizar termos em documentos, priorizando relevância e desempenho em grandes textos. Para isso, o banco depende de um índice específico, sem o qual a consulta perde o sentido prático ou não funciona como esperado. Esse índice é o FULLTEXT. Ele permite buscas por palavras, frases e até combinações de termos, sendo muito comum em campos de descrição, conteúdo, notícias e comentários. Em versões e mecanismos compatíveis do MySQL, ele pode ser criado sobre colunas de texto para acelerar consultas com MATCH ... AGAINST. Então, o gabarito B está correto porque o comando mostrado é justamente a sintaxe típica de busca textual do MySQL, e essa sintaxe pressupõe índice do tipo fulltext. É a cara da prova: se apareceu MATCH AGAINST, pense em busca textual e em FULLTEXT antes de sair procurando índices exóticos. As demais alternativas não têm relação com esse operador. Índice clusterizado, unique, regexp ou qualquer ideia de parallel não sustentam esse tipo de consulta textual no MySQL. Aqui a lógica é bem direta: busca por conteúdo em texto pede FULLTEXT.

Continue treinando

Questões relacionadas