0Pricing
Advanced PostgreSQL: Indexing, Partitioning, Replication · Leçon

Réglage du coût des index avec ANALYZE et les statistiques

Apprenez comment l’optimiseur PostgreSQL s’appuie sur les statistiques des tables pour choisir les index, et comment maintenir ces statistiques à jour afin que les plans d’exécution restent rapides.

Réglage du coût des index avec ANALYZE et les statistiques est une leçon Advanced PostgreSQL: Indexing, Partitioning, Replication gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Advanced PostgreSQL: Indexing, Partitioning, Replication, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Advanced PostgreSQL: Indexing, Partitioning, Replication comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

The Planner Needs Data About Data

PostgreSQL's planner picks between index scans and sequential scans using statistics about your tables: row counts, value distributions, and more.

Stale statistics lead to bad plans.

What ANALYZE Does

The ANALYZE command samples a table and updates statistics stored in the system catalogs, so the planner estimates row counts accurately.

ANALYZE orders;

Autovacuum and Autoanalyze

The autovacuum daemon also runs ANALYZE automatically when enough rows change. But heavy bulk loads may need a manual ANALYZE right away.

Reading Estimates vs Actuals

Use EXPLAIN ANALYZE to compare the planner's estimated rows with actual rows. A big gap signals stale or insufficient statistics.

EXPLAIN ANALYZE SELECT * FROM orders WHERE status = 'paid';

Statistics Target

The default_statistics_target controls sample size. Raise it on columns with skewed data for sharper histograms.

ALTER TABLE orders ALTER COLUMN status SET STATISTICS 500;

Why Bad Estimates Hurt

If the planner underestimates matching rows it may pick an index scan that becomes slow; overestimate and it may skip a perfectly good index for a seq scan.

Inspecting pg_stats

The pg_stats view exposes the collected statistics like most common values and null fraction per column.

SELECT attname, n_distinct, null_frac FROM pg_stats WHERE tablename = 'orders';

Extended Statistics

For correlated columns, create extended statistics so the planner understands dependencies between them.

CREATE STATISTICS orders_corr (dependencies) ON city, zip FROM orders;

Cost Parameters

Settings like random_page_cost tell the planner how expensive random I/O is. On SSDs, lowering it makes index scans more attractive.

SET random_page_cost = 1.1;

When the Index Is Ignored

If an index exists but is unused, suspect:

  • Stale statistics
  • Low selectivity (most rows match)
  • A type mismatch preventing index use

A Tuning Workflow

  1. Run EXPLAIN ANALYZE
  2. Check estimate vs actual gap
  3. ANALYZE or raise statistics target
  4. Adjust cost settings if needed
  5. Re-measure

Quick Check

Test your statistics tuning knowledge.

Recap

The PostgreSQL planner chooses indexes based on statistics kept fresh by ANALYZE and autovacuum.

Compare estimated versus actual rows with EXPLAIN ANALYZE, raise the statistics target for skewed columns, add extended statistics for correlated ones, and tune cost parameters to guide index choice.

Questions Fréquemment Posées

La leçon « Réglage du coût des index avec ANALYZE et les statistiques » est-elle gratuite ?

Oui — le texte complet de « Réglage du coût des index avec ANALYZE et les statistiques » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Advanced PostgreSQL: Indexing, Partitioning, Replication, passe à CoddyKit PRO. Le cours Advanced PostgreSQL: Indexing, Partitioning, Replication comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Réglage du coût des index avec ANALYZE et les statistiques » ?

Apprenez comment l’optimiseur PostgreSQL s’appuie sur les statistiques des tables pour choisir les index, et comment maintenir ces statistiques à jour afin que les plans d’exécution restent rapides. Tu pratiques Advanced PostgreSQL: Indexing, Partitioning, Replication avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Advanced PostgreSQL: Indexing, Partitioning, Replication ?

Aucune expérience préalable n'est requise. Advanced PostgreSQL: Indexing, Partitioning, Replication sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Réglage du coût des index avec ANALYZE et les statistiques » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Advanced PostgreSQL: Indexing, Partitioning, Replication ?

Oui. Chaque leçon Advanced PostgreSQL: Indexing, Partitioning, Replication inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Analyser les plans de requête avec EXPLAIN
  2. Surveillance de l’utilisation des index
  3. Réindexation et maintenance des index
  4. Réglage du coût des index avec ANALYZE et les statistiques
← Retour à Advanced PostgreSQL: Indexing, Partitioning, Replication