Blog
A new hybrid design for scalable vector indexes and a reference implementation in MySQL →
Processes and threads are fundamental abstrations for operating systems. Learn how they work and how they impact database performance in this interactive article. →
Why a lagging client can stall or break failover, and how MySQL’s GTID model avoids it. →
Every time you use a computer, the cache is working to ensure your experience is fast. →
The principles and processes we follow for fault tolerance. →
Benchmarking Postgres in a transparent, standardized and fair way is challenging. Here, we look at the process of how we did it in-depth →
A novel technique for implementing dynamic language interpreters in Go, applied to the Vitess SQL evaluation engine →
Take an interactive journey through the history of IO devices, and learn how IO device latency affects performance. →
Our experience upgrading the Query Insights database to PlanetScale Metal →
Learn how PlanetScale Metal was built and how we ensured it is safe. →
Learn how PlanetScale keeps its private fork of Vitess up-to-date with OSS →
Learn about the database sharding scaling pattern in this interactive blog. →
Design considerations for implementing a database throttler →
Design considerations for implementing a database throttler with a comparison of singular vs distributed throttler deployments. →
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. →
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 about the options for running non-blocking schema changes natively to MySQL, using Vitess, or other tools →
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. →
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 →
Learn how PlanetScale uses GitHub Actions and PlanetScale to automate schema changes on our own application. →