Skip to content
B-trees and database indexes
Engineering

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.

Benjamin Dicken
Anatomy of a Throttler, part 1
Engineering

Anatomy of a Throttler, part 1

Learn about some design considerations for implementing a database throttler.

Shlomi Noach
Increase IOPS and throughput with sharding
Engineering

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.

Benjamin Dicken
Faster backups with sharding
Engineering

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.

Benjamin Dicken
The State of Online Schema Migrations in MySQL
Engineering

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

Shlomi Noach
Dealing with large tables
Engineering

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.

Benjamin Dicken
Sharding strategies: directory-based, range-based, and hash-based
Engineering

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.

Holly Guevara
The MySQL adaptive hash index
Engineering

The MySQL adaptive hash index

The adaptive hash index help to improve performance of the already-fast B-tree lookups

Benjamin Dicken
Profiling memory usage in MySQL
Engineering

Profiling memory usage in MySQL

Learn how to visualize the memory usage of a MySQL connection

Benjamin Dicken
How PlanetScale makes schema changes
Engineering

How PlanetScale makes schema changes

Learn how PlanetScale uses GitHub Actions and PlanetScale to automate schema changes on our own application.

Mike Coutermarsh
Identifying and profiling problematic MySQL queries
Engineering

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.

Benjamin Dicken
The Problem with Using a UUID Primary Key in MySQL
Engineering

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.

Brian Morrison II
Amazon Aurora Pricing: The many surprising costs of running an Aurora database
Engineering

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.

Brian Morrison II
Three common MySQL database design mistakes
Engineering

Three common MySQL database design mistakes

Learn about a few common mistakes when designing your MySQL database schema.

Brian Morrison II
PlanetScale branching vs. Amazon Aurora blue/green deployments
Engineering

PlanetScale branching vs. Amazon Aurora blue/green deployments

Learn the key differences between Amazon Aurora blue/green deployments and PlanetScale branching.

Brian Morrison II
Considerations for building a database disaster recovery plan
Engineering

Considerations for building a database disaster recovery plan

Learn different considerations and best practices for quickly and efficiently recovering your database when downtime hits.

Brian Morrison II
Working with Geospatial Features in MySQL
Engineering

Working with Geospatial Features in MySQL

In this blog post, we explore how complex data and geographic features can be represented in MySQL.

Savannah Longoria
PlanetScale vs Amazon Aurora replication
Engineering

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.

Brian Morrison II
MySQL isolation levels and how they work
Engineering

MySQL isolation levels and how they work

Learn about the various isolation levels used by MySQL to allow concurrency in your database.

Brian Morrison II
The challenges of supporting foreign key constraints
Engineering

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.

Shlomi Noach, Manan Gupta
What is HTAP?
Engineering

What is HTAP?

Learn what HTAP is, how HTAP compares to OLAP and OLTP, and some pros and cons of HTAP.

Savannah Longoria
Webhook security: a hands-on guide
Engineering

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.

Mike Coutermarsh
Three surprising benefits of sharding a MySQL database
Engineering

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.

Brian Morrison II
MySQL replication: Best practices and considerations
Engineering

MySQL replication: Best practices and considerations

Learn the best practices for configuring MySQL replication, and how to ensure your data is always available.

Brian Morrison II
A guide to HTML email with Ruby on Rails and Tailwind CSS
Engineering

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.

Ayrton
Sharding for cost-effective database management
Engineering

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.

David Graham
What is MySQL replication and when should you use it?
Engineering

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.

Brian Morrison II
Distributed caching systems and MySQL
Engineering

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.

Brian Morrison II
What is MySQL partitioning?
Engineering

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.

Brian Morrison II