Skip to content
← All issues

Readyset Weekly: Issue 1

Why You Can’t Always Trust Query Plans and What To Do About It

Query plans can be misleading. Many engineers rely on EXPLAIN alone when debugging slow queries, but without actual runtime data, you’re flying blind. Here’s what you can do about it:

In PostgreSQL, always use the flags ANALYZE, BUFFERS, TIMING, VERBOSE with EXPLAIN. This displays actual execution times, I/O behavior, and memory usage, enabling you to distinguish between CPU-bound queries and I/O bottlenecks, identify under-allocated work_mem, and pinpoint inefficient index usage. If you're only using EXPLAIN, you’re seeing what the planner predicts, not what happened.

In MySQL, EXPLAIN is a starting point, not a conclusion. Pair it with SHOW STATUS before and after the query. Keep an eye on counters like Handler_read_rnd_next, which signals poorly positioned indexes, and Select_full_join, a standard indicator for joins that do not use indexes. These counters reveal what the execution plan doesn’t: how MySQL executed your queries and where the performance hit occurred.

Want to dig deeper? Check out this full post on Demystifying EXPLAIN and EXPLAIN ANALYZE.

🔍 What We’re Watching in the Database Ecosystem

Supabase + Lovable Integration This is a solid example of using your database as both a source of truth and an event stream. Supabase triggers pipe changes directly to compute—no polling, no glue. It’s a small but telling move toward reactive data flows, precisely the kind of pattern more developers expect their infra to support natively.

Why Hydra Is So Ducking Fast Hydra splits queries between row and column backends to serve fast analytics on live data, no ETL in sight. It’s a bold answer to the push for warehouse-speed on operational systems, but the tradeoff is complexity. There’s a reason simpler, declarative caching models are gaining traction.

The 5-Minute Rule, Revisited for the Cloud (CIDR 2025 paper (PDF)) This new take on a classic cost model examines when it’s more cost-effective to cache versus fetch in today’s cloud. With RAM, storage, and network costs constantly shifting, even old rules of thumb deserve a second look. It’s a timely reminder that caching isn't just about speed, it’s also about economics.

PgBouncer is useful, important, and fraught with peril A no-frills breakdown of how PgBouncer helps scale Postgres connections in real-world apps. JP Camara walks through why connection pooling matters, how it works under the hood, and the pitfalls to avoid. It’s a solid reminder that even small pieces of infrastructure can unlock significant performance gains, if you get the configuration right.

In Case You Missed It

🎉 Company update: We’re thrilled to share that Readyset has completed the AWS Foundational Technical Review (FTR)! This milestone affirms that Readyset meets AWS’s high standards for security, reliability, and operational excellence as defined by the Well-Architected Framework. Learn more on our blog.

🔦 Customer Spotlight: ClickFunnels, a leading marketing and lead generation platform, cut database workload by over 85% in just a few days with Readyset! Learn how they’re scaling fast and optimizing query performance in our case study.

🤝 Partnership Announcement: We’re excited to announce our new partnership with CYBERTEC, a leading PostgreSQL service and support provider, to help businesses seamlessly scale their PostgreSQL infrastructure.

Get Readyset Weekly in your inbox

One email a week — what shipped, what we learned, and what is worth reading.