Extended statistics (CREATE STATISTICS: dependencies, ndistinct, MCV)
Simple terms
Filter on city and postal_code together and the planner hands you a row estimate that is wildly too low, then picks a join to match. Here is why. By default it treats columns as unrelated: it takes the odds of each condition and multiplies them. For genuinely independent columns that is fine. For city and postcode, which move together, multiplying is nonsense, and a row count that is off by 100x sends the planner somewhere terrible. CREATE STATISTICS records how the columns actually relate so it stops guessing that way.
You might be asked
Two columns in a table are strongly correlated (think city and postal_code, or status and stage). A query filters on both with AND, the row estimate is off by 100x, and the planner picks a terrible join. Explain WHY the default planner gets this wrong, then walk me through the three kinds of extended statistics, which symptom each one fixes, what the planner actually does differently with each, and why even a 'perfect' dependency doesn't make the estimate exactly right.
Pro concept
Full answer and evidence depth sit behind Pro
You have the question and a plain-English lead. Pro unlocks the short answer, what the docs say, what the code does, the labeled lab evidence or reproduction protocol, how to use it under pressure, and the references.
Unlock the full breakdown for Extended statistics (CREATE STATISTICS: dependencies, ndistinct, MCV)
- How you'd answer it, the full senior-level short answer
- What the docs say, the manual's actual wording, with the citations
- What the code does, the mechanism decoded from PostgreSQL's own source at a pinned tag
- Proof from a real run, labeled as raw output, a captured run summary, or a run-it-yourself protocol
- Using it under pressure, the situation, the call you'd make, what goes wrong, and what people get wrong
- Version notes, what changed across PostgreSQL releases
- 7 interviewer follow-ups for this concept
Card required. Cancel before day 7 and you are not charged.
How this was verified
The open teaser is the question and a plain-English lead. The short answer, the manual walkthrough, the source decode, the lab evidence, and how to use it under pressure unlock with Pro. Evidence is labeled as raw output, a captured run summary, or a run-it-yourself protocol.
Connected
Where this concept connects
How this concept links across the library, the interview questions that test it, its plain-English glossary definition, and the guided pathways it belongs to. Open the full map to explore further.
Part of these pathways
Related concepts