boringSQL
Learn practical SQL & PostgreSQL techniques. Build rock-solid data systems with 'boring' database solutions that deliver reliability without the drama.
- Posts
- 53 from 14 Apr 2024 to 11 Oct 2026
- Posting
- weekly (33 in the last year)
- Kind
- personal blog
- Feed
- https://boringsql.com/atom.xml
2026 29
- How TABLESAMPLE picks rows
- Postgres relation files, filed under base/
- What REPACK (CONCURRENTLY) costs while it runs
- Where PostgreSQL stores row locks
- The unbearable lightness of one more index
- Read your own writes, off the primary
- The curious case of Google's AlloyDB
- The DISTINCT in your COUNT
- PostgreSQL's MVCC is bad. So is everyone else's.
- The tests passed. The plan didn't.
- VACUUM at the Page Level
- Same rows, different SUM
- The NULL in your NOT IN
- pg_stat_statements: everything it can't
- pg_stat_statements: everything it tells you
- TOAST: Where PostgreSQL hides big values
- Welcome to ORDER BY jungle
- Strong views on PostgreSQL VIEWs
- HOT Updates in Postgres
- PostgreSQL MVCC, Byte by Byte
- Don't let AI touch your production database
- Good CTE, bad CTE
- pg_regresql: truly portable PostgreSQL statistics
- Production query plans without production data
- PostgreSQL Statistics: Why queries run slow
- Inside PostgreSQL's 8KB Page
- Reading Buffer statistics in EXPLAIN output
- Introduction to Buffers in PostgreSQL
- The hidden cost of PostgreSQL arrays
2025 10
- Instant database clones with PostgreSQL 18
- VACUUM Is a Lie (About Your Indexes)
- RegreSQL: Regression Testing for PostgreSQL Queries
- Beyond Start and End: PostgreSQL Range Types
- PostgreSQL maintenance without superuser
- Beyond the Basics of Logical Replication
- First steps with Logical Replication in PostgreSQL
- PostgreSQL Service Connections
- Time to Better Know The Time in PostgreSQL
- VIEW inlining in PostgreSQL
2024 14
- DELETEs are difficult
- Text identifiers in PostgreSQL database design
- We need to talk about ENUMs
- Beyond Simple Upserts with MERGE in PostgreSQL
- Gentle Introduction to Window Functions in PostgreSQL
- The time keepers: pg_cron and pg_timetable
- Deep Dive into PostgREST - Time Off Manager (Part 3)
- Custom PostgreSQL extensions with Rust
- Deep Dive into PostgREST - Time Off Manager (Part 2)
- Deep Dive into PostgREST - Time Off Manager (Part 1)
- How not to change PostgreSQL column type
- The Bloat Busters: pg_repack vs pg_squeeze
- Are SQL & Databases Boring? Absolutely - and That's a Good Thing!
- When and Why PostgreSQL Indexes Are Ignored