C.W.K.
Stream
Lesson 04 of 10 · published

Why PostgreSQL Became the Default

~14 min · foundations, history

Level 0Schema Seedling
0 XP0/86 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

The quietly relentless winner

In 1995 PostgreSQL was an academic side project at Berkeley. MySQL had momentum, Oracle had budget, and "Postgres" was the database that nobody outside research labs used. Three decades later it's the most-loved database in every developer survey, the default offering on every major cloud, and the engine behind companies from Apple to Instagram to Notion. Nothing flashy happened — Postgres just kept being correct, kept being extensible, kept being free, and kept shipping.

Three structural reasons it won

  1. Correctness over shortcuts. When the SQL standard says X, Postgres does X. MySQL has decades of "actually we silently truncate" surprises; Postgres does not.
  2. Extensibility as a first-class API. You can add custom data types, operators, index methods, and entire query languages without forking the engine. PostGIS, TimescaleDB, pgvector — all extensions, none requiring a special build.
  3. Community ownership. No single company can hold the project hostage with relicensing. The same governance model has produced 30 years of yearly major releases.

The yearly release cadence

A new major version ships every September. Each release adds material features (logical replication, parallel queries, JSONB, MERGE, virtual generated columns, uuidv7, and so on) without breaking existing applications. You can usually upgrade in an afternoon — the cost of not upgrading compounds.

Code

PostgreSQL follows the SQL standard·sql
-- Window functions exactly as the spec describes them
SELECT name, department, salary,
       RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS dept_rank
FROM   employees;
Extensibility in one statement·sql
-- Add a complete geospatial engine
CREATE EXTENSION postgis;

SELECT name
FROM   restaurants
WHERE  ST_DWithin(location,
                  ST_MakePoint(-73.99, 40.73)::geography,
                  1000);

-- Add an HNSW vector engine
CREATE EXTENSION vector;

SELECT id FROM documents
ORDER BY embedding <=> '[0.1, 0.2, ...]'::vector
LIMIT 5;

External links

Exercise

Find out which major PostgreSQL version your team (or your favourite hosted provider) is currently on. Compare it to the latest released major. Identify two features added in the gap that you would actually use.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.