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.