Access Path Selection in a Relational Database Management System (1979)
by Patricia Griffiths Selinger, Morton Astrahan, Donald Chamberlin, Raymond Lorie, Thomas Price Ā· ACM SIGMOD / UC Berkeley course mirror
The System R paper that introduced cost-based query optimization. Defines selectivity factors, access path costing and dynamic-programming join ordering ā the model nearly every relational optimizer still uses, which is what makes modern EXPLAIN output legible.
More resources on Database Optimization
InnoDB Performance Optimization ā Database Best Practices ā Peter Zaitsev
Learn advanced InnoDB performance optimization techniques and database best practices from industry expert Peter Zaitsev. This video covers critical aspects of optimizing MySQL databases with the InnoDB storage engine.
PostgreSQL 14 Internals
Egor Rogov's book from Postgres Professional, released as a free PDF. Five parts cover MVCC and vacuum, buffer cache and WAL, locks, query execution with planner statistics and join methods, and the B-tree, GiST, SP-GiST, GIN and BRIN index types.
SQLite Query Planning
Official SQLite documentation walking through how the query planner chooses between full table scans, rowid lookups, single and multi-column indexes and covering indexes, then how an index can satisfy ORDER BY. Small worked examples make index selectivity concrete. The cheapest way to build the core mental model: SQLite's planner is simple enough to explain end-to-end in one page, and the intuitions transfer directly to Postgres, MySQL and SQL Server.
PostgreSQL Documentation ā Chapter 14: Performance Tips
The official PostgreSQL manual chapter on performance. Explains reading EXPLAIN and EXPLAIN ANALYZE output, how single-column and extended statistics drive planner cost estimates, controlling join order, bulk-loading strategies, and durability settings that trade safety for speed.
CMU 15-445/645: Intro to Database Systems (Fall 2025 Lectures)
Carnegie Mellon's full undergraduate database systems course, recorded Fall 2025. Twenty-five lectures by Andy Pavlo and Jignesh Patel cover storage layouts, B-tree and hash indexes, join algorithms, query execution and cost-based query planning and optimization.
