O que pode levar o PostgreSQL a remover ou desativar um índice para uma tabela ou consulta específica?
sobes.tech IA
Resposta da IA
O PostgreSQL pode não usar um índice para uma consulta ou tabela específica por várias razões:
-
Pequeno volume de dados: se a tabela for muito pequena, o planejador pode decidir que uma varredura sequencial é mais rápida do que usar um índice.
-
Baixa seletividade do índice: se o índice não reduz significativamente o número de linhas (por exemplo, muitos valores repetidos), o PostgreSQL pode optar por não usá-lo.
-
Estatísticas desatualizadas ou ausentes: se as estatísticas da tabela não estiverem atualizadas, o planejador pode tomar decisões incorretas.
-
Tipos de consultas e condições: algumas operações (por exemplo, LIKE com padrão no início, funções em colunas indexadas) não podem usar eficientemente o índice.
-
Parâmetros de configuração: configurações como enable_indexscan podem desativar o uso de índices.
-
Fragmentação ou corrupção do índice: embora raro, pode afetar.
Para diagnosticar, recomenda-se usar EXPLAIN ANALYZE e atualizar as estatísticas com o comando ANALYZE.