</>

Index et performance

Avancé

B-tree, index composites et partiels, autres types d'index, EXPLAIN ANALYZE, statistiques et requêtes lentes classiques.

  1. 01

    Comment fonctionne un index B-tree

    Un index est une structure triée, séparée de la table, qui permet de retrouver des lignes sans parcourir toute la table : c'est le principal levier de performance en lecture.

  2. 02

    Créer les bons index

    L'efficacité d'un index dépend de son ordre de colonnes, de sa sélectivité et de la façon dont la requête l'utilise.

  3. 03

    Au-delà du B-tree : GIN, GiST, BRIN, hash

    PostgreSQL propose plusieurs types d'index pour des données et des opérateurs différents.

  4. 04

    Lire un plan avec EXPLAIN et EXPLAIN ANALYZE

    EXPLAIN montre le plan que le planificateur prévoit ; EXPLAIN ANALYZE exécute la requête et compare les estimations à la réalité : c'est l'outil central du diagnostic.

  5. 05

    Seq Scan, Index Scan, Bitmap : pourquoi le planificateur choisit

    Un Seq Scan n'est pas un bug : sur une petite table, ou quand la requête ramène une grande part des lignes, lire séquentiellement est moins cher que sauter dans un index.

  6. 06

    Statistiques, ANALYZE et autovacuum

    Le planificateur estime les coûts à partir de statistiques (distribution des valeurs, nombre de lignes) : si elles sont obsolètes, il choisit de mauvais plans.

  7. 07

    Les requêtes lentes classiques

    La plupart des problèmes de performance en production tiennent en une poignée de motifs récurrents.

  8. 08

    Trouver les requêtes lentes avec pg_stat_statements

    Avant d'optimiser, mesurez : pg_stat_statements agrège les statistiques de toutes les requêtes exécutées, normalisées (paramètres remplacés).