PostgreSQL EXPLAIN reference
Understand what your query plan is actually telling you.
PlanCheck's reference focuses on evidence, boundaries, and the signals that change diagnosis: estimated vs actual rows, loops, discarded work, scans, joins, memory and I/O.
Rows Removed by Filter
It counts rows examined by a plan node but rejected by its filter. A large number can reveal wasted work, but it does not by itself prove that an index is missing.
Read referenceSequential Scan
No. Sequential scans are often correct for small tables or queries that need a large fraction of a relation. Judge them by measured work, selectivity, table size and execution time.
Read referenceRow Estimate Mismatch
PostgreSQL chooses a plan using estimates before execution. Stale statistics, skew, correlated columns, expressions and parameter-sensitive workloads can make those estimates diverge from reality.
Read referenceNested Loop
A Nested Loop can become expensive when an inner operation repeats far more times than expected. Actual Loops and row-estimate errors are key evidence.
Read referenceDisk Sort
It means the sort used temporary disk storage instead of remaining entirely in its available memory. The right response depends on sort size, concurrency, query shape and whether the sort can be reduced or avoided.
Read referenceCommon PostgreSQL EXPLAIN questions
What is PostgreSQL EXPLAIN ANALYZE?
EXPLAIN shows the plan PostgreSQL intends to use. EXPLAIN ANALYZE also executes the statement and reports measured values such as actual rows, loops and timing.
Are EXPLAIN costs milliseconds?
No. Startup Cost and Total Cost are planner cost units used to compare candidate plans. Actual Time values from EXPLAIN ANALYZE are measured in milliseconds.
What should I look at first in an EXPLAIN ANALYZE plan?
Start with total Execution Time, then inspect expensive or highly repeated nodes, compare Plan Rows with Actual Rows, check discarded work, memory or disk spills, and buffer activity.
Does PlanCheck upload my SQL or EXPLAIN plan?
PlanCheck analyzes plans in the browser. The production analyzer does not upload SQL text or EXPLAIN plan contents to a PlanCheck analysis server.
Evidence first, recommendations second.
PlanCheck separates what PostgreSQL measured from what the plan merely suggests, so you can investigate the right thing without turning assumptions into facts.