Questão de Banco de Dados — PostgreSQL — CESPE / CEBRASPE 2024
Banco de Dados›PostgreSQL
Código
ce175134
Banca
CESPE / CEBRASPE
Órgão
ITAIPU BINACIONAL
Ano
2024
Nível
Superior
Cargo
Profissional de Nível Universitário Júnior - Função: Analista de Sistemas
Considerando o PostgreSQL como gerenciador de banco de dados, assinale a opção que apresenta os tipos de índices com melhor desempenho na aceleração de pesquisas de texto completo.
AGiST e HASH
BB-Tree e GIN
CGIN e GiST
DGiST e B-Tree
EBRIN e GIN
Revelar gabarito e comentário▾
GabaritoC — GIN e GiST
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”.
Índices para Full-Text Search no PostgreSQL
Gabarito: letra C. Os tipos de índices com melhor desempenho para acelerar pesquisas de texto completo no PostgreSQL são GIN (Generalized Inverted Index) e GiST (Generalized Search Tree). O GIN é especialmente otimizado para busca textual, enquanto o GiST também suporta texto completo, embora com performance inferior ao GIN. As demais opções (B-Tree, HASH, BRIN) não são adequadas para full-text search.
A banca cobra o conhecimento dos tipos de índices do PostgreSQL e suas aplicações. O índice GIN é o padrão para colunas tsvector em full-text search; o GiST é uma alternativa viável, mas menos eficiente. As opções A, B, D e E misturam tipos que não servem para esse fim.
Tipo de Índice
Adequado para Full-Text Search?
Característica Principal
Operações Suportadas
GIN
Sim (ótimo)
Índice invertido; padrão para tsvector
@@, to_tsquery, busca textual
GiST
Sim (bom)
Árvore de busca generalista; flexível
@@, to_tsquery, geometria, texto
B-Tree
Não
Ordenação e igualdade/intervalo
=, <, >, BETWEEN
HASH
Não
Apenas igualdade
=
BRIN
Não
Blocos de faixa; tabelas ordenadas
=, <, > (dados sequenciais)
Alternativa A — ❌ Incorreta
GiST e HASH. Embora GiST seja útil para texto completo, HASH é projetado apenas para comparações de igualdade e não suporta operações de busca textual (como @@, to_tsquery). HASH não indexa texto completo.
Alternativa B — ❌ Incorreta
B-Tree e GIN. Apesar de GIN ser correto, B-Tree é ineficaz para full-text search, pois lida com ordenação e consultas de igualdade/intervalo, não com índices invertidos necessários para texto.
Alternativa C — ✅ Correta ⟵ GABARITO
GIN e GiST. Ambos são índices de propósito geral que suportam operadores de texto completo. GIN é o mais rápido para consultas tsvector, enquanto GiST oferece flexibilidade (ex.: índices de texto + geometria).
Alternativa D — ❌ Incorreta
GiST e B-Tree. B-Tree não atende a full-text search, como explicado.
Alternativa E — ❌ Incorreta
BRIN e GIN. Embora GIN seja correto, BRIN (Block Range INdex) é otimizado para tabelas muito grandes com dados fisicamente ordenados, mas não é indicado para texto completo.
NÃO CAIA NESSA!
A banca explora a confusão entre índices de uso geral (B-Tree, HASH) e os específicos para texto completo (GIN, GiST). Candidatos podem achar que B-Tree serve para qualquer consulta, mas para full-text é necessário índice invertido.
PEGA ESSA DICA!
Decore: GIN é o rei do full-text search no PostgreSQL; GiST é o coringa (também para geometria). B-Tree é para ordenação/igualdade, HASH só para igualdade, BRIN para séries temporais/grandes volumes. Monte uma tabela mental com essas aplicações.