· 13 min · PostgreSQL

How the Other Half Plans

Query planning is a two-job problem: rewrite your SQL into a better shape, then search billions of possible join orders for the cheapest one.

0 comments

· 4 min · PostgreSQL

All Your GUCs in a Row: the debug_* family

PostgreSQL's dozen `debug_` parameters are its own testing machinery, exposed as runtime settings.

0 comments

· 4 min · PostgreSQL

All Your GUCs in a Row: deadlock_timeout

PostgreSQL's `deadlock_timeout` controls how often deadlocks are searched for, not how long a deadlock will be tolerated.

0 comments

· 3 min · PostgreSQL

All Your GUCs in a Row: DateStyle

PostgreSQL's DateStyle parameter does two unrelated things at once, which explains why it confuses everyone.

0 comments

· 18 min · PostgreSQL

How the Other Half Counts

PostgreSQL's query planner gathers statistics one way; Oracle, Db2, MySQL, SQLite, DuckDB, and Snowflake each chose differently.

0 comments

· 6 min · PostgreSQL

All Your GUCs in a Row: data_sync_retry

PostgreSQL's fsync() assumption once broke silently across every database in the world. Here's the scar tissue, and why crashing is the safe option.

0 comments

· 3 min · PostgreSQL

All Your GUCs in a Row: data_directory_mode

PostgreSQL 11 lets you create a data directory with group read access (0750) instead of owner-only (0700), enabling unprivileged backup processes to copy files…

0 comments

· 3 min · PostgreSQL

All Your GUCs in a Row: data_directory

PostgreSQL solves a bootstrapping puzzle with `data_directory`: how to find the config file before knowing where the data lives.

0 comments

· 3 min · PostgreSQL

All Your GUCs in a Row: data_checksums

A read-only preset, like block_size — SHOW data_checksums tells you whether the cluster has page checksums, and that’s the only interaction the GUC offers. But

0 comments

· 4 min · PostgreSQL

All Your GUCs in a Row: cursor_tuple_fraction

The planner assumes cursors fetch only 10% of results by default. If you're actually reading them all, that fast-start bias could be killing your performance.

0 comments