
Personalizing your onboarding with Markdoc
Learn how we utilized Markdoc to create custom, extendable product onboarding at PlanetScale.


How to Scale your Database and when to Shard MySQL
Not sure when to shard your MySQL database? This article covers when you should consider horizontal sharding as a scaling strategy in MySQL and some other scaling options before then.


Horizontal sharding for MySQL made easy
Historically, there has been the belief that you cannot horizontally scale and shard MySQL, learn how Vitess has made MySQL sharding at the database layer a reality.



Deploying multiple schema changes at once
Why PlanetScale deploys branch changes near-atomically, and how it applies concurrency and dependency resolution without impacting production databases.


Storing time series data in sharded MySQL to power Query Insights
How we built a scalable telemetry pipeline with Apache Kafka and PlanetScale.


Performant database tree traversal with Rails
Learn how to solve a tree traversal N+1 query problem in your Rails application.


How PlanetScale keeps your data safe
A detailed description of the multi-layered approach PlanetScale takes to ensure your data is safe.


Datetimes versus timestamps in MySQL
Learn the differences between datetimes and timestamps in MySQL, the DATE, YEAR, and TIME columns, timezones, and when to use each.


Generated Hash Columns in MySQL
Creating generated hash columns in MySQL for faster strict equality lookups.


Using redundant conditions to unlock indexes in MySQL
Using redundant conditions as a method to unlock obfuscated indexes and improve performance in MySQL.


Character sets and collations in MySQL
Understanding the differences between character sets and collations in MySQL.


MariaDB vs. MySQL
Learn the main differences between MariaDB and MySQL, why you might choose one over the other, scaling options, and how Vitess fits into the picture.


Backward compatible database changes
Learn about safely using the expand, migrate, and contract pattern to make database schema changes without downtime and data loss.


Why isn’t MySQL using my index?
There are several reasons why MySQL might not consider your index, and in this article we’ll explore some of the most common ones.


Serverless Laravel applications with AWS Lambda and PlanetScale
Learn how to create serverless Laravel applications by deploying them to AWS Lambda and using PlanetScale as the database.


Database branching: three-way merge for schema changes
Learn how PlanetScale uses Git-like three-way diff to resolve schema change conflicts across database branches.


MySQL for application developers
Everything you need to know about MySQL as an application developer, with a focus on improving query performance. After covering the high-level overview, we’ll put the learnings to the test with some hands-on examples.


Pagination in MySQL
An overview of the different ways to paginate in MySQL including limit/offset pagination and cursor pagination plus the pros and cons of each.


What is database sharding and how does it work?
Learn what database sharding is, how sharding works, and some common sharding frameworks and tools.


How to read MySQL EXPLAINs
Learn how to read the output in MySQL EXPLAIN plans so you can utilize them to improve query performance.


Zero downtime Rails migrations with the PlanetScale Rails gem
Learn about the Ruby on Rails workflow that protects your database and application from accidental downtime and data loss.


Preparing for MySQL 5.7 EOL
What does the MySQL 5.7 EOL means for your database? Learn considerations to upgrade 8.0 and how PlanetScale can help you upgrade with no downtime or data loss.


What are the disadvantages of database indexes?
Learn about some of the possible downsides of using database indexes and how to remove unused database indexes in MySQL.


MySQL scaling made easy
Learn about sharding, connection pooling, and more from PlanetScale Technical Solutions Architect Jonah Berquist.


Solving N+1’s with Rails `exists?` queries
Learn how to solve your Rails applications N+1’s caused by `exists?` queries.


Faster MySQL with HTTP/3
In this article we explore how our HTTP/3 API compares to the latency of a traditional MySQL client.


What is a query planner?
Learn how query planning works and why query planners are important.


Temporal workflows at scale: Part 2 — Sharding in production
Learn how PlanetScale simplifies the process of running Temporal in production by looking at how our customer runs heavy production workloads.


Rails’ safety mechanisms
A comprehensive overview of Rails’ many safety features that can help you prevent painful mistakes.
