Pular para o conteúdo principal

Questão de Banco de Dados — PostgreSQL — CESPE / CEBRASPE 2024

Banco de DadosPostgreSQL
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.
  1. AGiST e HASH
  2. BB-Tree e GIN
  3. CGIN e GiST
  4. DGiST e B-Tree
  5. 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.

Gabarito: letra C

Link permanente: /questoes/ce175134