En supposant que vous posez des questions sur la fonctionnalité "indice d'index" commune dans de nombreuses bases de données, PostgreSQL ne fournit pas une telle fonctionnalité. Il s'agit d'une décision intentionnelle prise par l'équipe PostgreSQL. Un bon aperçu de pourquoi et de ce que vous pouvez faire peut être trouvé ici. La raison fondamentale est qu'il s'agit d'une méthode d'optimisation des performances qui a tendance à causer davantage de problèmes lorsque les données changent, et l'optimiseur de PostgreSQL peut réévaluer le plan en fonction des statistiques. En d’autres termes, ce qui pourrait être un bon plan de requête aujourd’hui n’est peut-être pas toujours un bon plan de requête, et les indications d’index imposent un plan de requête spécifique.
En tant qu'outil de test très brut, vous pouvez utiliser les paramètres enable_seqscan和enable_indexscan. Voir :
Ceux-ci ne sont pas destinés à une utilisation en production soutenue . Si vous rencontrez des problèmes avec la sélection du plan de requête, vous devez consulter la docs pour le suivi des problèmes de performances des requêtes. Ne vous contentez pas de définir les paramètres enable_ et de partir.
À moins que vous n'ayez une très bonne raison d'utiliser un index, Postgres fera probablement le bon choix. pourquoi ?
Pour les petites tables, l'analyse séquentielle est plus rapide.
Postgres n'utilise pas d'index lorsque les types de données ne correspondent pas, vous devrez peut-être inclure les conversions appropriées.
Les paramètres de votre forfait peuvent causer des problèmes.
En supposant que vous posez des questions sur la fonctionnalité "indice d'index" commune dans de nombreuses bases de données, PostgreSQL ne fournit pas une telle fonctionnalité. Il s'agit d'une décision intentionnelle prise par l'équipe PostgreSQL. Un bon aperçu de pourquoi et de ce que vous pouvez faire peut être trouvé ici. La raison fondamentale est qu'il s'agit d'une méthode d'optimisation des performances qui a tendance à causer davantage de problèmes lorsque les données changent, et l'optimiseur de PostgreSQL peut réévaluer le plan en fonction des statistiques. En d’autres termes, ce qui pourrait être un bon plan de requête aujourd’hui n’est peut-être pas toujours un bon plan de requête, et les indications d’index imposent un plan de requête spécifique.
En tant qu'outil de test très brut, vous pouvez utiliser les paramètres
enable_seqscan
和enable_indexscan
. Voir :enable_
ParamètresCeux-ci ne sont pas destinés à une utilisation en production soutenue . Si vous rencontrez des problèmes avec la sélection du plan de requête, vous devez consulter la docs pour le suivi des problèmes de performances des requêtes. Ne vous contentez pas de définir les paramètres
enable_
et de partir.À moins que vous n'ayez une très bonne raison d'utiliser un index, Postgres fera probablement le bon choix. pourquoi ?
Voir également cet ancien message de newsgroup.