Get things done, without drama.

Simplicity meets reliability at boringSQL. Imagine technology that just works—no confusing setups, no frustrating glitches or dependencies. Just solid tools that deliver, day in and day out.

And it's not just in the name. Time tested power behind most success of tech industy SQL and PostgreSQL is the toolkit; pillars of stable, dependable technology that stand the test of time. Our 'boring' means digging deep, sticking for the long term and focusing on what matters

First steps with Logical Replication in PostgreSQL

Learn the fundamentals of logical replication in PostgreSQL. Stream row-level changes, set up publishers and subscribers, and manage key components for scaling and integration.

2025-06-11 · 13 min · Radim Marek

PostgreSQL Service Connections

PostgreSQL service definition is a powerful feature that allows you to define and manage database connections in a secure and maintainable way.

2025-05-15 · 5 min · Radim Marek

Time to Better Know The Time in PostgreSQL

Understand how PostgreSQL handles time. This article explains TIMESTAMPTZ, TIMESTAMP, DATE, TIME, and INTERVAL so you can choose the right type and avoid common issues.

2025-04-06 · 11 min · Radim Marek

VIEW inlining in PostgreSQL

Understand how PostgreSQL optimizes queries through view inlining, what factors can prevent it, and best practices for designing views that perform efficiently.

2025-02-08 · 5 min · Radim Marek

DELETEs are difficult

Why are database DELETEs complex and inefficient? Uncover challenges from physical data removal to autovacuum, and find strategies for managing large deletions.

2024-11-23 · 11 min · Radim Marek

Text identifiers in PostgreSQL database design

Considering text identifiers in your database? Discover readability benefits and performance challenges, plus strategies for efficient use.

2024-11-09 · 10 min · Radim Marek

We need to talk about ENUMs

ENUMs offer simplicity, but are they right for your data? Compare them with CHECK constraints and reference tables to find the best approach for managing your application's values.

2024-09-04 · 9 min · Radim Marek

Beyond Simple Upserts with MERGE in PostgreSQL

MERGE command goes beyond simple upserts. See how it handles complex data synchronization, allowing conditional inserts, updates, and deletes in a single, atomic statement for your advanced data needs.

2024-08-25 · 5 min · Radim Marek

Gentle Introduction to Window Functions in PostgreSQL

Unlock powerful data analysis in PostgreSQL with window functions. Go beyond aggregates to rank, calculate running totals, and compare rows directly within your queries.

2024-07-07 · 6 min · Radim Marek

The time keepers: pg_cron and pg_timetable

Need to schedule tasks in PostgreSQL? Compare pg_cron for simple, in-database scheduling with pg_timetable for advanced features, complex workflows, and multi-cluster orchestration.

2024-06-15 · 7 min · Radim Marek

Deep Dive into PostgREST - Time Off Manager (Part 3)

2024-06-06 · 8 min · Radim Marek

Custom PostgreSQL extensions with Rust

Build PostgreSQL extensions with Rust and pgrx. Safely create powerful functions, like retrieving system load, and integrate them into database workflows.

2024-05-24 · 4 min · Radim Marek

Deep Dive into PostgREST - Time Off Manager (Part 2)

2024-05-18 · 10 min · Radim Marek

Deep Dive into PostgREST - Time Off Manager (Part 1)

2024-05-11 · 7 min · Radim Marek

How not to change PostgreSQL column type

Changing PostgreSQL column types can be tricky. Avoid common pitfalls like table rewrites and locks, and follow best practices for safe, efficient migrations with minimal downtime.

2024-05-04 · 8 min · Radim Marek

The Bloat Busters: pg_repack vs pg_squeeze

Combat PostgreSQL table bloat with pg_repack and pg_squeeze. Discover how these tools differ from VACUUM FULL and choose the right strategy for efficient database maintenance without downtime.

2024-04-27 · 6 min · Radim Marek

Are SQL & Databases Boring? Absolutely—and That's a Good Thing!

2024-04-21 · 2 min · Radim Marek

When and Why PostgreSQL Indexes Are Ignored

Why isn't PostgreSQL using your indexes? Discover the surprising reasons behind ignored indexes and optimize your queries for significant performance gains.

2024-04-14 · 5 min · Radim Marek