Blog
By Ayrton |
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. →
By David Bravant |
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. →
By Brian Morrison II |
Learn about what database replication is and some real-world use cases of MySQL replication that can benefit your database scalability strategy. →
By Brian Morrison II |
Learn what distributed caching systems are, how they complement MySQL databases, and potential issues you might face when implementing them. →
By Brian Morrison II |
Learn the basics of MySQL partitioning, including partitioning with range, list, and key strategies, as well as how partitioning relates to database sharding. →
By Matthias Crauwels |
Deep dive into MySQL’s connection handling mechanisms for optimal connection pooling and improved concurrency. →
By Ayrton |
Learn how we utilized Markdoc to create custom, extendable product onboarding at PlanetScale. →
By Jonah Berquist |
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. →
By Lucy Burns, Taylor Barnett |
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. →
By Shlomi Noach |
Why PlanetScale deploys branch changes near-atomically, and how it applies concurrency and dependency resolution without impacting production databases. →
By Mike Coutermarsh |
Learn how to solve a tree traversal N+1 query problem in your Rails application. →
By Sam Lambert |
A detailed description of the multi-layered approach PlanetScale takes to ensure your data is safe. →
By Aaron Francis |
Learn the differences between datetimes and timestamps in MySQL, the DATE, YEAR, and TIME columns, timezones, and when to use each. →
By Aaron Francis |
Using redundant conditions as a method to unlock obfuscated indexes and improve performance in MySQL. →
By Matt Lord |
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. →
By Taylor Barnett |
Learn about safely using the expand, migrate, and contract pattern to make database schema changes without downtime and data loss. →
By Aaron Francis |
There are several reasons why MySQL might not consider your index, and in this article we’ll explore some of the most common ones. →
By Matthieu Napoli |
Learn how to create serverless Laravel applications by deploying them to AWS Lambda and using PlanetScale as the database. →
By Shlomi Noach |
Learn how PlanetScale uses Git-like three-way diff to resolve schema change conflicts across database branches. →
By Aaron Francis |
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. →
By Aaron Francis |
An overview of the different ways to paginate in MySQL including limit/offset pagination and cursor pagination plus the pros and cons of each. →
By Justin Gage |
Learn what database sharding is, how sharding works, and some common sharding frameworks and tools. →