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.
- A)GiST e HASH
Errada, porque HASH não é voltado para pesquisa de texto completo e o GiST sozinho não compensa essa limitação nessa dupla.
- B)B-Tree e GIN
Errada, porque B-Tree é excelente para igualdade e ordenação, mas não para acelerar busca de texto completo.
- C)GIN e GiST
Certa, porque GIN e GiST são os índices mais associados a consultas de texto completo no PostgreSQL.
- D)GiST e B-Tree
Errada, porque B-Tree não é o tipo indicado para full text search, apesar de o GiST poder ser útil em outros cenários.
- E)BRIN e GIN
Errada, porque BRIN é mais adequado para tabelas grandes com dados correlacionados e não é a melhor opção para busca textual.
Gabarito: C
No PostgreSQL, a escolha do índice depende do tipo de consulta. Quando o assunto é pesquisa de texto completo, os tipos que costumam entregar melhor desempenho são o GIN e o GiST, porque eles foram pensados para lidar bem com estruturas mais complexas e buscas por termos, em vez de comparar valores de forma simples. O GIN costuma ser muito forte para consultas com muitas chaves associadas a um mesmo documento, como acontece em full text search. Já o GiST também pode ser usado nesse cenário, oferecendo boa flexibilidade para consultas mais elaboradas. O B-Tree é o índice clássico do banco, ótimo para igualdade, ordenação e intervalos, mas não é o mais adequado para acelerar busca textual completa. O HASH também não é a estrela desse tipo de consulta. BRIN é mais indicado para tabelas enormes com dados naturalmente ordenados e consultas por faixa, então também não é a primeira escolha para texto completo. Por isso, a alternativa correta é a que reúne GIN e GiST. Em provas do CEBRASPE, vale guardar esta ideia simples: texto completo no PostgreSQL aponta para GIN como principal nome, com GiST também aparecendo entre os tipos apropriados.