Secure your connection string with AWS KMS
Learn how to encrypt your connection strings so that not even AWS can access them.
All of the tech PlanetScale replaces
PlanetScale is more than just a drop-in replacement for MySQL. Learn about everything PlanetScale can do for you.
ChangelogGo to changelog
PlanetScale and HIPAA
PlanetScale can now enter into Business Associate Agreements (BAA) with Single-tenant customers.
How PlanetScale Boost serves your SQL queries instantly
Learn how we use a partial materialization engine for database caching alongside your database.
Introducing PlanetScale Boost
Up to 1,000× faster queries in just a few clicks with our groundbreaking caching technology.
One million connections
Learn how to use PlanetScale to safely include your database in your serverless functions without hitting connection limits in MySQL.
MySQL Integers: INT, BIGINT, and more
Gain a deeper understanding of the MySQL integer types by exploring the different options (INT, BIGINT, MEDIUMINT, etc) and how they are stored.
Announcing Vitess 15
Vitess 15 is now generally available with updates to VTOrc, VTAdmin, MySQL compatibility, and more.
Vitess for the rest of us
How Vitess can increase your database‘s resilience, scalability, and performance
Laravel’s safety mechanisms
A comprehensive overview of Laravel’s many safety features that can help you prevent painful mistakes.
Optimizing queries in arewefastyet
Learn how we detected and optimized two slow queries in arewefastyet using PlanetScale Insights.
Increasing PlanetScale plan limits to include billions of reads
PlanetScale’s Scaler plan includes 100 billion reads for $29/month.
Building PlanetScale with PlanetScale
How PlanetScale uses database branching and non-blocking schema changes to build PlanetScale.
Introduction to MySQL joins
Learn how and when to use inner joins, outer joins, left joins, and right joins.
Indexing JSON in MySQL
Learn how to index JSON in MySQL with generated columns and functional indexes.
MySQL data types: VARCHAR and CHAR
In this entry of the series, we explore using VARCHAR and CHAR data types in your database and give some pointers on which type is best to use and when.
Debugging database errors with Insights
Learn about the new PlanetScale Insights database errors feature.
The MySQL JSON data type
Learn what the MySQL JSON data type is, when to use MySQL JSON, and some caveats to using JSON documents in relational databases.
Using the PlanetScale serverless driver with AWS Lambda functions
Declarative MySQL schemas with Atlas CLI
Learn how to use Atlas CLI with PlanetScale to define your database as code.
Build a multi-stage pipeline with PlanetScale and AWS
Learn how to build an automated DevOps pipeline with AWS Lightsail, CodeBuild, and PlanetScale.
TAOBench: Running social media workloads on PlanetScale
Learn how we used TAOBench with PlanetScale to benchmark social media workloads
Gated Deployments: addressing the complexity of schema deployments at scale
We just introduced a new feature, Gated Deployments, that gives you more control over when your schema changes deploy.
One million queries per second with MySQL
Discover how PlanetScale handles one million queries per second (QPS) with horizontal sharding in MySQL
Zero downtime Laravel migrations
Learn how to run no downtime non-blocking schema migrations in your production Laravel app with PlanetScale.
Run SQL script files on a PlanetScale database
Learn how to run commands in batch against a PlanetScale database using the PlanetScale CLI.
How product design works at PlanetScale
Learn about the lightweight and highly collaborative process our product design team follows to ship quickly at PlanetScale.
You can now use PlanetScale in HTTP-only environments, like Cloudflare Workers, Vercel Edge Functions, and Netlify Edge Functions
Introducing FastPage: Faster offset pagination for Rails apps
Introducing FastPage, a new gem for ActiveRecord that speeds up deep pagination queries.
How to kill Sidekiq jobs in Ruby on Rails
Learn how PlanetScale uses a custom middleware to kill our Sidekiq jobs in production without relying on deploys.
Replace your Django database with PlanetScale
Learn how to swap out an existing Django database and replace it with a PlanetScale database.
Learn how PlanetScale enables databases to seamlessly fit into the DevOps lifecycle.
Connect to a MySQL database in Python
Connect a Python app to MySQL database with mysqlclient, mysql-connector-python, PyMySQL, and aiomysql.
How PlanetScale prevents MySQL downtime
Learn how PlanetScale protects against downtime due to human error, system immaturity, and app issues.
Ruby on Rails: 3 tips for deleting data at scale
Learn how to delete data in large Rails apps with destroy_async, delete, destroy, and scheduled cron jobs.
The Slotted Counter Pattern
Handle MySQL increment counter bursts with the Slotted Counter Pattern
Behind the scenes: How we built Password Roles
Learn how we leveraged Vitess ACLs and VTTablet to build our password roles functionality
Safely dropping MySQL tables
Learn about how we’re making it safer to drop tables and easier to detect if they’re still in use.
Temporal Workflows at scale with PlanetScale - Part 1
Learn how to create a more reliable workflow with Temporal and PlanetScale
Announcing Teams: An easier way to manage database administrator access
Learn how you can manage database access with Teams and Directory Sync
We now display PlanetScale system status directly in your dashboard
Learn about how we built the new in-app system status using Vercel edge functions and StatusPage
How do database indexes work?
Learn how database indexes work under the hood and how they can be used to speed up queries
Getting started with the PlanetScale CLI
Learn how to quickly get up and running with the PlanetScale CLI.
Consensus algorithms at scale: Part 8 - Closing thoughts
In the final installment of the consensus algorithm series, we pull everything together with some final thoughts.
Deploy requests now alert on potential unwanted changes
We’ve updated our Deploy Request UI to alert when a schema change could produce unintended changes
Announcing the PlanetScale and Hashnode July Hackathon
Build an open-source project and compete for $20,000 in prizes and swag!
Consensus algorithms at scale: Part 7 - Propagating requests
In part 7 of the Consensus algorithm series, we combine everything we’ve worked at to cover propagating requests
Identifying slow Rails queries with sqlcommenter
Learn how to use sqlcommenter with Rails
Announcing Vitess 14
Learn about what was just released in Vitess 14
Grouping and aggregations on Vitess
Vitess is a database proxy that creates an illusion of a single database, when in reality the query is sent to multiple MySQL instances.
Consensus algorithms at scale: Part 6 - Completing requests
In part 6 of the Consensus algorithms series, we look at how to handle request completions
Introducing PlanetScale Insights: Advanced query monitoring
Insights gives you a faster way to debug and monitor your PlanetScale database queries
Extract, load, and transform your data with PlanetScale Connect
Use PlanetScale connect to easily perform ELT (Extract, Load, Transform) actions on your data to fulfill your application needs.
Introducing PlanetScale Portals: Read-only regions
Put your data where your users and applications are.
Why we wrote the PlanetScale “Future Database” principles
We believe databases are lagging behind DevOps innovation and we wrote these principles to illustrate the path forward.
The operational relational schema paradigm
An exploration of the current landscape of schema change methodology and what the future should look like.
Feature storytelling with Framer Motion
Learn how we used Framer Motion to create our schema revert feature’s narrative animation.
Consensus algorithms at scale: Part 5 - Handling races
In part 5 of our consensus algorithms series, we discuss how we handle race conditions and forward progress requirements.
Consensus algorithms at scale: Part 4 - Establishment and revocation
In part 4 of the consensus algorithms series, we look at how algorithm leaders are established and revoked.
Generics can make your Go code slower
Go 1.18 is here, and with it, the first release of the long-awaited implementation of Generics is finally ready for production usage. Generics are a frequently requested feature that has been highly contentious throughout the Go community.
Why we chose NanoIDs for PlanetScale’s API
Learn why PlanetScale used NanoID to generate obscure and URL friendly identifiers.
Revert a migration without losing data
Learn how PlanetScale lets you revert changes to your database after a migration with no downtime and zero data loss.
Behind the scenes: How schema reverts work
Learn how we used VReplication to allow for migration reverts with data retention.
How to prevent SQL injection attacks in Node.js
Don’t let SQL injection attacks hurt your business.
Schema design 101 for relational databases
Whether you’re coming from a NoSQL background or have never used a database, we’ll walk through the basics of relational database schema design.
We’re sharing the PlanetScale-powered communication tool we use internally.
Announcing Vitess 13
Learn about the Vitess 13 release.
Misconceptions about databases in the Jamstack
Breaking down the barriers to using relational databases in Jamstack applications.
How we made PlanetScale’s background jobs self-healing
How to build self-healing background jobs into your application with background queueing systems, like Sidekiq.
Build a Laravel application with a MySQL database
Learn how to build a Laravel CRUD application, connect it to a MySQL database, and seed it with data.
How to seed a database with Prisma and Next.js
Use Prisma and Next.js to automatically populate your database with data.
Introduction to Laravel caching
Learn how to speed up your Laravel applications with caching.
Using the PlanetScale CLI with GitHub Actions workflows
Learn how to build automated workflows to develop and operate PlanetScale databases with GitHub Actions.
Create a Harry Potter API with Node.js/Express, MySQL, and PlanetScale
Learn how to build a Harry Potter API using Node.js, Express, and PlanetScale
Using entropy for user-friendly strong passwords
When implementing user authentication with passwords, throw out the password rules you know.
How to set up Next.js with Prisma and PlanetScale
A step-by-step guide for using PlanetScale and Prisma with Next.js.
How our Rails test suite runs in 1 minute on Buildkite
Learn how we use minitest and FactoryBot with parallel tests to get our Rails test suite to run in 1 minute on Buildkite.
Deploy your Dusty Domains for good with Netlify
Deploy your forgotten domains in the month of December for a good cause with Netlify and friends.
Arctype integrates MySQL GUI with PlanetScale
The power of PlanetScale within a beautiful GUI — now you can connect to development branches, switch between them, and even create deploy requests in Arctype.
Scaling databases in a serverless world
In a serverless world, traditional databases scale differently. They need a rock solid foundation that Vitess and PlanetScale can provide.
Introducing Prisma’s Data Platform PlanetScale integration
Create a PlanetScale database on the Prisma Data Platform; immediately store and query data from the browser
Bring your data to PlanetScale
PlanetScale now supports zero downtime data migrations from your existing MySQL Database
PlanetScale is now generally available
The PlanetScale serverless database platform is ready for your production workloads.
Building a Next.js app with Netlify, NextAuth.js, Prisma, and a PlanetScale serverless database
A new dynamic Next.js starter app with authentication and PlanetScale built-in, ready to be deployed to Netlify
PlanetScale launch week
Join our contest and stay tuned for exciting announcements and livestreams all this week
Introducing PlanetScale Managed Cloud
Deploy our database platform in your AWS account
New PlanetScale pricing: Scaler plan upgrades and our new enterprise plan
We’ve updated our database plans to better meet your needs
Using PlanetScale with JetBrains DataGrip
Connect PlanetScale to JetBrains DataGrip to use database branching, deploy requests, and non-blocking schema changes
Comparing AWS’s RDS and PlanetScale
PlanetScale draws customers from RDS due to better scalability and superior developer workflow
Quick deploys using the Web Console
Deploy a TypeScript app using the PlanetScale Vercel integration and Web Console
Optimizing SQL with Query Statistics
Check the performance of your SQL queries in real-time.
NoneSQL, All the DevEx
Databases will win based on superior developer experience, not what is under the hood.
Stay up to date with the PlanetScale Changelog
Stay up-to-date with the latest features and product launches from PlanetScale
Automatically copy migration data in PlanetScale branches
Use PlanetScale branching with the database schema migration tools of your choice
Connect any MySQL client to PlanetScale using Connection Strings
Connect PlanetScale to any MySQL client with Connection Strings for a true serverless database experience.
PlanetScale on Vitess
At PlanetScale, our vision is to build a database developers love that can scale indefinitely. To do this, we knew we needed a database with a history of powering companies that deal with humongous amounts of data and traffic. That’s why we chose Vitess.
Sam Lambert appointed new CEO of PlanetScale
Announcing a new CEO for PlanetScale
The promises and realities of the relational database model
The relational model is one of the oldest surviving models in computer science but it has some drawbacks that need to be addressed.
Integrating PlanetScale with Vercel in a few steps
Together, Vercel and PlanetScale combine a serverless platform with a scalable and easy-to-use database, providing an incredible development experience with limitless scale.
Serverless finally has a database
The dream behind PlanetScale is to serve the modern application developer’s needs as well as something like GitHub does for code.
Non-Blocking Schema Changes
Non-blocking schema changes let you push updates to your database without fear of blocking your databases, locking individual tables, or slowing down production during schema migrations.
Announcing PlanetScale: The database for developers.
PlanetScale is the first database designed for developer workflows, on top of the technology of the hyperscalers.
International Women’s Day 2021
To celebrate International Women’s Day we took some time to ask ourselves, the women of PlanetScale, what questions we’d want to answer and then share regarding our careers in tech.
Announcing Vitess 9.0
On behalf of the Vitess maintainers, I am pleased to announce the general availability of Vitess 9.
Announcing Vitess 8.0
On behalf of the Vitess maintainers team, I am pleased to announce the general availability of Vitess 8 for MySQL.
Horizontal Sharding for MySQL Made Easy
For developers building out a web application, a transactional datastore is the obvious and proven choice, but with success comes scale limitations.
Pitfalls of isolation levels in distributed databases
The more loosely coupled components are in a distributed system, the better it scale
MySQL semi-sync replication: durability, consistency and split brains
We look at some basics and follow up to present scenarios that require higher level intervention to ensure availability and to avoid split brains from taking place.
Consensus algorithms at scale: Part 3 - Use cases
Consensus Use Cases
Orchestrator failure detection and recovery: New Beginnings
how the new integration adds new failure detection and recovery scenarios, making orchestrator’s operation goal-oriented.
Consensus algorithms at scale: Part 2 - Rules of consensus
The Rules of Consensus
On joining PlanetScale and the vision of open source database infrastructure
Why I joined PlanetScale to work on Vitess and PlanetScaleDB, and what I perceive Vitess can become in the MySQL open source ecosystem.
Consensus algorithms at scale: Part 1 - Introduction
This is a multi-part blog series and will be updated with links to the corresponding posts.
Learn Horizontal Scaling on PlanetScaleDB with Vitess — Rate Puppies in a Rust app with Sharded MySQL Database
Rate Puppies in a Rust app with Sharded MySQL Database
Announcing Vitess 7
On behalf of the Vitess maintainers team, I am pleased to announce the general availability of Vitess 7. Major Themes Improved SQL Support We continued to progress towards (almost) full MySQL compatibility.
Debunking 3 myths about Vitess fault tolerance
Here at PlanetScale we hear some concerns about the reliability of Vitess and its capabilities with regards to data loss.
Announcing Vitess 6
I am excited to announce the general availability of Vitess 6, the second release to follow our new accelerated release schedule.
ACID Transactions are not just for banks - the Vitess approach
Build systems that do not lose data. Vitess prevents asynchronous failure in two ways: (1) ensuring that the changes are saved locally on storage, with the redo log and binary logs safely written to disk and (2) making use of semi-synchronous replication.
Videos: Intro to Vitess—its powerful capabilities and how to get started
This video playlist featuring Vitess co-creator, Sugu Sougoumarane, is an excellent resource to learn more about the features and capabilities of open source Vitess.
PlanetScale migrates open source Vitess test suite from Python to Go
It’s easier than ever to contribute to Vitess. The test suite migration from Python to golang makes Vitess more developer friendly.