PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Pourquoi PostgreSQL (9.1) n'utilise-t-il pas l'index pour une simple sélection d'égalité ?

Pour résoudre ces problèmes, il est impératif que vous exécutiez VACUUM ANALYZE sur la table entre les étapes de dépannage pour voir ce qui fonctionne. Sinon, vous ne saurez peut-être pas exactement ce qui a changé où. Essayez donc cela et exécutez à nouveau d'abord et voyez si cela résout le problème.

Les prochaines étapes à exécuter (exécuter une analyse de vide et un cas de test entre chacune) sont :

ALTER TABLE lead ALTER COLUMN email SET STATISTICS 1000;

Peut-être que cela réglera le problème. Peut-être pas.

Si cela ne résout pas le problème, examinez attentivement la vue pg_stat :

SELECT * FROM pg_stat WHERE table_name = 'lead';

Veuillez lire attentivement ce qui suit et voir ce que vous pouvez voir qui ne va pas dans pg_stat ;

http://www.postgresql.org/docs/9.0/static /planner-stats.html

EDIT :Pour être très clair, vacuum analyse n'est pas l'ensemble du dépannage. Cependant, il DOIT être exécuté entre les étapes de dépannage, sinon vous ne pouvez pas être sûr que le planificateur prend en compte les données correctes.