Blog
B-trees are used by many modern DBMSs. Learn how they work, how databases use them, and how your choice of primary key can affect index performance. →
Learn about some design considerations for implementing a database throttler. →
For big databases, IOPS and throughput can become a bottleneck in database performance. Learn how sharding helps scale out IOPS and throughput beyond the limitations of a single server. →
Data migrations are a critical part of the database lifecycle, and are sometimes necessary for version upgrades, sharding, or moving to a new platform. In many cases, migrations are painful and error-prone. In this article, we walk through how migrations are performed at PlanetScale, and offer advice on how to improve the migration experience. →
Sharding a database comes with many benefits: Scalability, failure isolation, write throughput, and more. However, one of the lesser-known benefits comes from improved backups and restore performance. →
Learn the basics of Change Data Capture (CDC) and how to leverage Vitess VStream API to build data pipelines. →
Learn about the options for running non-blocking schema changes natively to MySQL, using Vitess, or other tools →
The Vitess query planner takes multiple passes over a query plan to optimize it as much as possible before execution. A recent tricky bug report led to an improvement in how the optimizer functions. →
Large databases often have a small number of very large tables that makes scaling difficult. How can you scale with these while keeping your database performant? This article covers three techniques. →
Learn about the different types of sharding: directory-based, range-based, and hash-based plus some of the pros and cons of each. →
Harshit Gangal, Deepthi Sigireddi |
How we implemented a consistent lookup Vindex in Vitess to ensure data consistency without using 2PC →
The adaptive hash index helps to improve performance of the already-fast B-tree lookups →
Learn how to visualize the memory usage of a MySQL connection →
My experience working as an intern in the Vitess query serving team for PlanetScale. →
Learn how PlanetScale uses GitHub Actions and PlanetScale to automate schema changes on our own application. →
MySQL has built-in functionality for collecting statistics on and profiling your MySQL queries. Learn how to leverage these features to identify problems. →
Understand the different versions of UUIDs and why using them as a primary key in MySQL can hurt database performance. →
Amazon Aurora is pitched as a straightforward and scalable database service on AWS, but there are associated costs that you might not be aware of. →
Learn about a few common mistakes when designing your MySQL database schema. →
Learn the key differences between Amazon Aurora blue/green deployments and PlanetScale branching. →
Learn different considerations and best practices for quickly and efficiently recovering your database when downtime hits. →
In this blog post, we explore how complex data and geographic features can be represented in MySQL. →
Learn about how Amazon Aurora replication works, and how it compares to the traditional MySQL replication strategy used by PlanetScale. →
Learn about the various isolation levels used by MySQL to allow concurrency in your database. →
Today, PlanetScale launched support for foreign key constraints. This article covers some of the behind-the-scenes technical challenges we had to overcome to support them. →