Skip to content
Vinicius Grippa

Vinicius Grippa

Articles by Vinicius Grippa (10)

Tutorials

Readyset HA with ProxySQL and MySQL

A MySQL source, a replica and a ProxySQL in front of both. Adding a highly available Readyset cache behind one slow report query took two docker run commands and two INSERT statements, with no change to the application, the schema or MySQL. Here is the measurement, the routing, and how to check the cache is really serving.

Vinicius Grippa
2026-10-2213 min read
Database Caching

Cache Invalidation for SQL Queries: How To Stop Writing It Yourself

Cache invalidation is the hardest part of caching SQL queries. Here's why TTLs and manual keys break, and how incremental view maintenance avoids both.

Vinicius Grippa
2026-09-2125 min read
News

Your Database Bill Is Climbing Faster Than Your Traffic

If you run databases in the cloud, you've probably watched the instance line on your bill creep up while your traffic held flat. This post traces where that increase comes from, projects where a cloud database instance lands over the next year, and shows the number an operator can still move: cost per query.

Vinicius Grippa
2026-08-1011 min read
Database Scaling

Caching Supabase with Readyset over IPv6: the AWS and Docker pieces that have to line up

Supabase's direct Postgres endpoint is IPv6-only, and a fresh AWS account has no IPv6 enabled. This walkthrough covers the exact VPC, subnet, and Docker configuration needed to run Readyset in front of Supabase on EC2, with three deployment paths: host network, dual-stack bridge, and Linux package.

Vinicius Grippa
2026-07-1817 min read
AI & Databases

Vibe Coding a High-Performance App with Readyset QueryPilot

In this blog post, we are going to use "Vibe Coding" to build an application and explore Readyset QueryPilot, a tool designed to automatically analyze and cache queries in a MySQL workload. The goal is to prove that even for automated queries with no human interaction, QueryPilot can automate query caching and improve performance. QueryPilot automatically identifies which queries should be cached and recommends the appropriate strategy, either deep caching or shallow caching. This automation de

Vinicius Grippa
2026-02-246 min read
Engineering

Behind the Magic: How Readyset Speeds Up Queries with Streaming Dataflow

Database performance is often the bottleneck in high-traffic web applications. Whether you're serving user dashboards, product catalogs, or personalized content, the same SQL queries get executed repeatedly. Caching sounds like the natural solution. However, traditional caching can be challenging to implement correctly: you need to manually add cache logic to your application (such as Redis), keep cache entries in sync, and address edge cases like stale data. Readyset takes a different approach

Vinicius Grippa
2025-08-216 min read
Database Caching

When Query Optimization Isn’t Enough: Solving MySQL Overload with Caching

Consider the perfect scenario: the database is running on reliable hardware, MySQL has been finely tuned, and queries have been reviewed and optimized. Despite this, sustained business growth inevitably leads to an increase in workload over time. When this happens, even optimized queries can begin to overwhelm the system, not because they are slow, but because they run frequently and consume cumulative resources over time. At this stage, optimizing performance goes beyond analyzing execution pl

Vinicius Grippa
2025-07-0711 min read
Query Optimization

Identifying Cacheable Queries: Using tools like pt-query-digest or the MySQL sys schema to pinpoint queries that would benefit from caching

Introduction It’s common for DBAs to optimize queries to address bottlenecks and reduce resource contention. However, in production workloads, the most resource-intensive queries aren’t always the longest-running ones. High-frequency queries that execute quickly but are called repeatedly can collectively consume significant resources, increasing overall latency and system load. Identifying these queries requires a more comprehensive analysis than simply inspecting the slow query log or process

Vinicius Grippa
2025-05-2910 min read
Database Scaling

Vertical Scaling of MySQL vs. Horizontal Scaling with Readyset: A Cost and Performance Analysis in the Cloud

Scaling relational databases in the cloud often creates a tension between cost and performance. As workloads grow—especially read-heavy ones powering analytics, dashboards, or reports—latency increases and infrastructure bills spike. The default response is usually vertical scaling: increase instance size, add more CPU and memory. While effective up to a point, this approach quickly hits diminishing returns and inflates costs. An alternative is horizontal scaling, traditionally achieved through

Vinicius Grippa
2025-04-148 min read
Query Optimization

Optimizing SQL Pagination in MySQL

In our blog post on Optimizing SQL Pagination in Postgres, we explained how to optimize SQL pagination for Postgres. As a counterpart, we’ve decided to write one for MySQL pagination. Like PostgreSQL, MySQL offers several ways to handle pagination, but some are far more efficient than others. Let's break down the SQL Pagination options, talk about why LIMIT and OFFSET can be a problem, and look at smarter ways to paginate large datasets efficiently. The Classic SQL Pagination Approach: LIMIT 

Vinicius Grippa
2025-03-176 min read