Comment puis-je la force de Postgres pour utiliser un index quand elle aurait par ailleurs insister sur le fait de faire un balayage séquentiel?
Réponses
Trop de publicités?Comme un très émoussé marteau, utile pour les tests, vous pouvez utiliser l' enable_seqscan
et enable_indexscan
paramètres. Voir:
Ces sont pas adaptés pour la production en cours d'utilisation. Si vous avez des problèmes avec le plan de requête choix, vous devriez voir la documentation pour le suivi des problèmes de performances des requêtes. Ne vous contentez pas réglé enable_
params et à pied.
Sauf si vous avez une très bonne raison pour l'utilisation de l'index, Postgres peut-être faire le bon choix. Pourquoi?
- Pour les petites tables, c'est plus rapide de faire des analyses séquentielles.
- Postgres ne pas utiliser les index pour les types de données ne correspondent pas correctement, vous devrez peut-être inclure des moulages.
- Votre planificateur de paramètres peuvent être à l'origine des problèmes.
Voir aussi ce vieux message de groupe de discussion.
Probablement la seule raison valable pour l'utilisation de
set enable_seqscan=false
c'est quand vous êtes de l'écriture de requêtes et que vous voulez rapidement voir ce que le plan de requête serait en réalité ont été il y de grandes quantités de données dans la table(s). Ou bien sûr, si vous avez besoin rapidement de confirmer que votre requête n'est pas à l'aide d'un indice tout simplement parce que le jeu de données est trop petit.