Schemas, indexes and the migrations between them: notes from keeping a production database boring.
The database changes that never page anyone at 2 a.m. share one trait: they are split into steps small enough to be uninteresting.
Every unused index taxes every write. One query to find them, and a safe way to drop them.
The plan tells you where the time goes if you read it from the inside out. A walk through the nodes that matter.
When a pool runs dry, requests wait in line. Size it from your latency budget, not from a round number.
Sequential or random, integer or UUID: the choice shows up years later, in your index pages.
New articles, sent when they are published. Unsubscribe any time.