PostgreSQLLa base de données la plus sophistiquée au monde.

Version anglaise

24.2. Ré-indexation régulière

Dans certains cas, reconstruire périodiquement les index par la commande REINDEX(7) ou une série d'étapes individuelles de reconstruction en vaut la peine.

Les pages de l'index B-tree, qui sont devenues complètement vides, sont réclamées pour leur ré-utilisation. Mais, il existe toujours une possibilité d'utilisation peu efficace de l'espace : si, sur une page, seulement plusieurs clés d'index ont été supprimés, la page reste allouée. En conséquence, si seulement quelques clés sont supprimées, vous devrez vous attendre à ce que l'espace disque soit très mal utilisé. Dans de tels cas, la réindexation périodique est recommandée.

Le potentiel d'inflation des index qui ne sont pas des index B-tree n'a pas été particulièrement analysé. Surveiller périodiquement la taille physique de ces index est une bonne idée.

De plus, pour les index B-tree, un index tout juste construit est légèrement plus rapide qu'un index qui a été mis à jour plusieurs fois parce que les pages adjacentes logiquement sont habituellement aussi physiquement adjacentes dans un index nouvellement créé (cette considération ne s'applique pas aux index non B-tree). Il pourrait être intéressant de ré-indexer périodiquement simplement pour améliorer la vitesse d'accès.

REINDEX(7) peut être utilisé en toute sécurité et très facilement dans tous les cas. Cette commande nécessite un verrou ACCESS EXCLUSIVE par défaut. De ce fait, il est souvent préférable de l'exécuter avec l'option CONCURRENTLY qui requiert seulement un verrou SHARE UPDATE EXCLUSIVE.