Supondo que você esteja perguntando sobre o recurso comum de "sugestão de índice" encontrado em muitos bancos de dados, o PostgreSQL não fornece esse recurso. Esta foi uma decisão consciente tomada pela equipe do PostgreSQL. Uma boa visão geral do porquê e do que você pode fazer pode ser encontrada aqui. As razões são basicamente que é um hack de desempenho que tende a causar mais problemas posteriormente à medida que seus dados mudam, enquanto o otimizador do PostgreSQL pode reavaliar o plano com base nas estatísticas. Em outras palavras, o que pode ser um bom plano de consulta hoje provavelmente não será um bom plano de consulta para sempre, e as dicas de índice forçam um plano de consulta específico para sempre.
Como um martelo muito sem corte, útil para testes, você pode usar o
enable_seqscan
e enable_indexscan
parâmetros. Ver:- Examinando o uso do índice
enable_
parâmetros
Estes não são adequados para uso em produção contínua . Se você tiver problemas com a escolha do plano de consulta, consulte a documentação para rastrear problemas de desempenho de consulta. Não basta definir
enable_
params e ir embora. A menos que você tenha uma boa razão para usar o índice, o Postgres pode estar fazendo a escolha correta. Por quê?
- Para tabelas pequenas, é mais rápido fazer verificações sequenciais.
- O Postgres não usa índices quando os tipos de dados não correspondem corretamente, talvez seja necessário incluir conversões apropriadas.
- As configurações do seu planejador podem estar causando problemas.
Veja também este post antigo do grupo de notícias.