B-trees and database indexes
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.
Anatomy of a Throttler, part 1
Learn about some design considerations for implementing a database throttler.
Increase IOPS and throughput with sharding
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.
Faster backups with sharding
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.
The State of Online Schema Migrations in MySQL
Learn about the options for running non-blocking schema changes natively to MySQL, using Vitess, or other tools
Dealing with large tables
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.
Sharding strategies: directory-based, range-based, and hash-based
Learn about the different types of sharding: directory-based, range-based, and hash-based plus some of the pros and cons of each.
The MySQL adaptive hash index
The adaptive hash index help to improve performance of the already-fast B-tree lookups
Profiling memory usage in MySQL
Learn how to visualize the memory usage of a MySQL connection
How PlanetScale makes schema changes
Learn how PlanetScale uses GitHub Actions and PlanetScale to automate schema changes on our own application.
Identifying and profiling problematic MySQL queries
MySQL has built-in functionality for collecting statistics on and profiling your MySQL queries. Learn how to leverage these features to identify problems.
The Problem with Using a UUID Primary Key in MySQL
Understand the different versions of UUIDs and why using them as a primary key in MySQL can hurt database performance.
Amazon Aurora Pricing: The many surprising costs of running an Aurora database
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.
Three common MySQL database design mistakes
Learn about a few common mistakes when designing your MySQL database schema.
PlanetScale branching vs. Amazon Aurora blue/green deployments
Learn the key differences between Amazon Aurora blue/green deployments and PlanetScale branching.
Considerations for building a database disaster recovery plan
Learn different considerations and best practices for quickly and efficiently recovering your database when downtime hits.
Working with Geospatial Features in MySQL
In this blog post, we explore how complex data and geographic features can be represented in MySQL.
PlanetScale vs Amazon Aurora replication
Learn about how Amazon Aurora replication works, and how it compares to the traditional MySQL replication strategy used by PlanetScale.
MySQL isolation levels and how they work
Learn about the various isolation levels used by MySQL to allow concurrency in your database.
The challenges of supporting foreign key constraints
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.
What is HTAP?
Learn what HTAP is, how HTAP compares to OLAP and OLTP, and some pros and cons of HTAP.
Webhook security: a hands-on guide
Learn what went into building PlanetScale webhooks from a security perspective. This article covers SSRF, webhook validation, DDoS, and more.
Three surprising benefits of sharding a MySQL database
There is more to sharding than simply increasing data throughput. In this article, we explore three different benefits of sharding your database.
MySQL replication: Best practices and considerations
Learn the best practices for configuring MySQL replication, and how to ensure your data is always available.
A guide to HTML email with Ruby on Rails and Tailwind CSS
Learn how to build HTML emails using Rails and Tailwind CSS. We also cover how to overcome some common obstacles such as Gmail message clipping, large file size, Apple autolinking, and more.
Sharding for cost-effective database management
Maximizing performance while minimizing costs is integral for engineering large-scale applications with massive data volumes. Learn more about cost-effective sharding in this tech talk.
What is MySQL replication and when should you use it?
Learn about what database replication is and some real-world use cases of MySQL replication that can benefit your database scalability strategy.
Distributed caching systems and MySQL
Learn what distributed caching systems are, how they complement MySQL databases, and potential issues you might face when implementing them.
What is MySQL partitioning?
Learn the basics of MySQL partitioning, including partitioning with range, list, and key strategies, as well as how partitioning relates to database sharding.