Pular para o conteúdo principal
Documentos
Sintaxe básicaFunções JSONAcionadoresGerenciamento de tabelas e esquemasFunções de cadeia de caracteresFunções matemáticasFunções de dataBancos de dadosÍndices

Índices

À medida que seu banco de dados cresce, também aumenta o tempo necessário para pesquisar os dados. Se você estiver filtrando pedidos, unindo registros de clientes ou procurando entradas de log, o desempenho é importante - e é aí que entram os índices.

Neste artigo, apresentaremos o que são índices no PostgreSQL, por que eles são importantes e como você pode usá-los para tornar suas consultas mais rápidas e eficientes.

O que são índices no PostgreSQL?

Um índice é uma estrutura de dados que torna mais rápida a localização de linhas específicas em uma tabela - semelhante ao índice no final de um livro. Em vez de examinar a tabela inteira, o PostgreSQL usa o índice para que você vá direto para as linhas relevantes.

Os índices não alteram os dados reais da tabela, mas criam uma referência rápida que pode reduzir significativamente o tempo de consulta, especialmente em grandes conjuntos de dados.

Por que os índices são importantes?

Sem índices, o PostgreSQL precisa verificar cada linha em uma tabela para encontrar resultados correspondentes. Isso é bom para pequenos conjuntos de dados, mas quando você começa a lidar com milhares ou milhões de linhas, essas varreduras de tabelas completas tornam as coisas mais lentas.

Os índices ajudam você:

  • Reduzir o tempo de resposta das consultas

  • Melhorar o desempenho da filtragem (WHERE), da classificação (ORDER BY) e da união de tabelas

  • Suporte a pesquisas rápidas em colunas consultadas com frequência

  • Melhorar o desempenho das pesquisas de texto completo e JSON (com índices GIN)

Usados corretamente, os índices podem acelerar o aplicativo e reduzir a carga no servidor de banco de dados.

Casos de uso no mundo real

Os índices são amplamente usados em todos os tipos de aplicativos:

  • Comércio eletrônico: Procure rapidamente produtos por categoria, faixa de preço ou termo de pesquisa

  • Finanças: Filtrar transações por conta ou intervalo de datas

  • Análises: Acelere as agregações e as consultas baseadas em tempo

  • Sistemas de CRM: Junte grandes tabelas de contatos com registros de interação ou dados de campanha

  • APIs: Melhorar os tempos de resposta para resultados filtrados ou paginados

Em quase todos os sistemas de produção, os índices são uma parte essencial da manutenção da velocidade e da capacidade de resposta à medida que os dados são dimensionados.

O que você aprenderá nesta seção

Esta seção da documentação guiará você pelos principais conceitos, sintaxe e práticas recomendadas para o uso de índices no PostgreSQL. Os tópicos incluem:

  • CREATE INDEX - Como criar índices básicos e personalizados

  • Índices B-Tree - O tipo de índice padrão e mais comumente usado

  • Índices Hash - Para pesquisas rápidas de igualdade (menos comumente usados)

  • Índices GIN - Para indexação de JSON, matrizes e pesquisa de texto completo

  • Índices GiST - Para tipos de dados complexos, como pesquisa geométrica ou fuzzy

  • Índices BRIN - Para dados grandes e naturalmente ordenados (como registros de séries temporais)

  • Índices de expressão - Índice baseado em uma função ou expressão

  • Índices parciais - Indexam apenas um subconjunto de linhas (útil para filtragem)

  • REINDEX - Reconstrução de índices quando necessário

  • Eliminação de índices não utilizados - Mantendo seu banco de dados enxuto

  • Considerações sobre desempenho - Equilíbrio entre velocidade e desempenho de armazenamento e gravação

Você também aprenderá a usar o site EXPLAIN para entender se os índices estão sendo usados de forma eficaz nas consultas.