Sobes.tech
Middle

Como funciona o índice GIN?

sobes.tech IA

Resposta da IA

GIN (Índice Invertido Generalizado) é um tipo de índice no PostgreSQL, otimizado para buscas rápidas em tipos de dados complexos, como arrays, JSON, pesquisa de texto completo e outras estruturas onde uma chave pode corresponder a múltiplos valores.

O princípio de funcionamento do índice GIN baseia-se em um índice invertido: para cada valor (chave), é mantida uma lista de referências às linhas da tabela onde esse valor ocorre. Isso permite realizar consultas de forma eficiente com operadores que verificam a presença de elementos em arrays ou chaves em JSON.

Características do GIN:

  • Suporta buscas rápidas em múltiplos valores em um único campo.
  • O índice ocupa mais espaço e requer mais tempo para atualização em comparação com B-tree.
  • É adequado para buscas de texto completo e trabalho com JSONB.

Exemplo de uso do GIN para JSONB:

CREATE INDEX idx_data_gin ON my_table USING GIN (data jsonb_path_ops);

SELECT * FROM my_table WHERE data @> '{"key": "value"}';

Este índice permite encontrar rapidamente linhas onde o campo data contém a chave e o valor indicados.