The Runtime Theory
DatabasesIn production

SQL Joins and Execution Plans: Nested Loop, Hash, and Merge

Recording in progress
#sql#joins#execution-plans#query-planning

A join is a strategy decision, and the planner has three weapons. We execute the same join three ways — nested loop, hash join, merge join — and watch the memory and I/O behavior of each. Then we feed the same query through a real planner and read the execution plan to see which strategy it picked and why. We cover the conditions that force a strategy: index availability, sort order, memory limits, and the dreaded nested-loop-on-every-row. With the mechanics visible, you can look at a plan's node shapes and immediately diagnose the common join performance failures.

Topics covered:

  • Nested loop, hash, and merge join mechanics
  • Memory and I/O profiles per strategy
  • Reading execution plans node by node
  • Why planners choose — and mischoose — strategies

Related articles

More in Databases

12:39
databases

B-Trees: The Shape of Databases

Why every major database is a tree shaped like a disk page — and how to read your index's health from its shape.

Watch
In production
databases

Postgres Internals Tour: Processes, Buffer Pool, WAL, and MVCC

A guided tour of PostgreSQL internals — process model, buffer manager, WAL, and MVCC — the mechanisms that make Postgres behave the way it does.

Details
In production
databases

Connection Pools, Database-Side: What a Connection Really Costs

What actually happens to your database when connections pile up — the connection lifecycle, pool sizing math, and why max_connections is not a tuning knob.

Details
In production
databases

Storage Engines: LSM-Trees vs. B-Trees

LSM-trees vs. B-trees — how each storage engine writes, compacts, and reads, and what that means for write and read amplification in your workload.

Details
In production
databases

Sharding Strategies: Partition Keys, Distribution, and Rebalancing

How sharding actually works — partition keys, data placement, cross-shard queries, and the operational reality of splitting one database into many.

Details
In production
databases

Replication Explained: WAL Shipping, Lag, and Failover

How database replication actually works — the transaction log, the lag, and the failure modes of synchronous and asynchronous replication in production.

Details
In production
databases

Transactions and Isolation Levels: ACID, MVCC, and Anomalies

What transactions actually guarantee — ACID mechanics, MVCC, and the real behavior behind each isolation level, demonstrated with concrete anomalies.

Details
In production
databases

Database Indexes Visualized: B-Trees, Covering Indexes, and Planner Decisions

How database indexes actually work — B-trees, hash indexes, covering indexes, and when the planner will or won't use the index you made.

Details
In production
databases

Query Optimizer Internals: From Parse Tree to Execution Plan

What happens inside a query optimizer — parse, rewrite, join ordering, cost models, and how the planner decides the plan your query gets.

Details

Depth, delivered weekly

One technical dispatch a week — articles and episode notes before they go public.

One technical dispatch per week. No noise.