The boring database is the fast one
What changed from version 2 to version 3, published September 20, 2026.
Tightened the ending; the old one apologised for itself.
AddedThe boring database is the fast one
Every few months someone on a team I work with proposes a new database. The reasons are always good ones on the surface: the current one is slow, the data does not fit neatly in tables, the new thing scales horizontally. And almost every time, when we look closely, the slowness is not the database. It is how we are asking it for things.
What slow usually means
When a query is slow, the first question is not “which engine” but “what is it doing”. Postgres will tell you, in detail, if you ask:
EXPLAIN (ANALYZE, BUFFERS)
SELECT * FROM orders
WHERE customer_id = 42
ORDER BY created_at DESC
LIMIT 20;
Nine times out of ten the answer is a sequential scan over a table that has grown past the point where scanning it was free. That is not a reason to leave Postgres. It is a missing index.
Which index, then
The index that fixes the query above is not one on customer_id. It is one on both columns, in the order the query uses them:
CREATE INDEX CONCURRENTLY orders_customer_recent
ON orders (customer_id, created_at DESC);
With it, Postgres walks straight to the customer’s newest rows and stops after twenty. Without it, it reads all of the customer’s orders and sorts them, every time. The difference on a large table is the difference between a millisecond and a second.
Index the columns you filter on, then the ones you sort by.
Build it concurrently on a live table, or you will lock writes while it builds.
Check the plan again afterwards. An index nobody uses is only a cost.
The case for boring
A database you have run for five years is a database whose failure modes you know. You know how it behaves when the disk fills, what its backups look like, and how long a restore takes. A new system arrives with none of that knowledge, and you will learn it at three in the morning.
Boring is not the absence of ambition. It is the decision to spendThe database you understand is faster than the one you do not, whatever the benchmarks say.
Spend your ambition on the part of the product people actually see.