69 things
Databases
Postgres, SQLite and MySQL. Courses, plus articles and videos.
Courses
Courses on databases
Software
Software on databases
Videos
Videos on databases
- The database for all your AI needs
- Sharding Postgres without extensions with PgDog founder, Lev Kokotov
- Rewriting SQLite from scratch (yes, really)
- Vitess for Postgres, with the co-founder of PlanetScale
- Making MySQL faster
- From Prisma Founder to LiveStore: Building local-first apps with Johannes Schickling
- How Durable Objects and D1 Work: A Deep Dive with Cloudflare’s Josh Howard
- 20 years of hacking Postgres with Heikki Linnakangas (cofounder of Neon)
- Building a serverless database replica with Carl Sverre
- Designing the data model for our course platform (with Stripe)
- Postgres on bare metal with the CEO of Prisma
- Moving from Redis to SQLite with Mike Buckbee
- Vectors in SQLite! (with libSQL)
- Launching Mastering Postgres!
- Creating a Postgres platform with Monica & Tudor from Xata.io
- Tips for handling timezones in Postgres
- Heroku's glory days & Postgres vs the world, w/ Craig Kerstiens
- Ruby on Rails + SQLite with Stephen Margheim
- SQL for fun and profit
- SQLite's WAL mode is fast fast
- Launching High Performance SQLite
- Migrating from Postgres to SQLite with Kent C. Dodds
- Production SQLite with Turso and libSQL
- SQLite is not weakly typed!
- Offline-first, multiplayer SQLite
- Distributed SQLite with Litestream and LiteFS
- DHH discusses SQLite (and Stoicism)
- Two new MySQL expressions
- Faster than a regular database index
- How I add millions of rows to MySQL (for performance testing)
- You don't always need JOINs
- Saving a SaaS on the weekend
- Storing feature flags as JSON (with indexing)
- Store 8 feature flags in 1 integer (Bitwise operations in MySQL)
- You don't need NoSQL (use MySQL)
- Easy database indexing strategies
- Using MySQL to stop freeloaders (in only 8 minutes)
- I love my database GUI
- Your database will break in 2038 (or sooner)
- Database enums are weird
- INT(11) is a lie
- Faster database indexes (straight from the docs)
- Faster geospatial queries in MySQL
- Pagination in MySQL - offset vs. cursor
- Stop using COUNT(id) to count rows
- Make your database queries 1000 times faster!
- Don't hide your database indexes!
- Storing money in MySQL (the right way)
- MySQL case insensitive searching (don't use LOWER)
- Database performance for application developers
Writing
Writing on databases
- SQLite is not weakly typed!
- Finding missing orders with a recursive CTE
- Shipping SQLite to Lambda (with Laravel Vapor)
- Datetimes versus timestamps in MySQL
- Generated hash columns in MySQL
- Using redundant conditions to unlock indexes in MySQL
- Character sets and collations in MySQL
- Why isn’t MySQL using my index?
- Indexing JSON in MySQL
- Pagination in MySQL
- Is COUNT(*) slow in MySQL?
- Efficient MySQL pagination using deferred joins
- Bitmasking in Laravel and MySQL
- Efficient distance querying in MySQL
- Using MySQL triggers to ensure immutability
Topics
The other topics
- Laravel & PHPThe framework, the packages I’ve written for it, and why PHP is good now.
- AI & agentsCoding agents, Solo, and the Token Town livestreams.
- Career & craftPublishing your work, trying hard, and making screencasts.