Making 768 servers look like 1
How to make 768 distinct Postgres servers look like 1 to your applications.
@planetscale-blog
Publisher
297
Posts
How to make 768 distinct Postgres servers look like 1 to your applications.
How PlanetScale Database Traffic Control contained a runaway Postgres query after the planner abandoned an index.
Deadlocks happen when transactions block each other. Learn how they escalate into downtime, how to reduce them through better queries and retry logic, and how Traffic Control can protect your database from your application.
Yo, I heard you liked databases, so we put logical databases in your database cluster so you can database while you database
Kubernetes is a framework for feedback controllers: write down what you want, observe what exists, make the next change, and repeat.
Connections lets you monitor and manage all active connections to Postgres and Vitess databases. See active sessions, identify locking patterns, and keep debugging even when normal application connections are exhausted.
Large DELETEs add work instead of reclaiming it. Structure your database so deletion becomes DROP TABLE or TRUNCATE.
Reducing the size and frequency of requests to your database has the double benefit of making your applications faster and cheaper.
The best way for you and your agents to see how your database actually performs in production.
Benchmarking is hard. Done wrong it is very misleading, and unfortunately it is frequently done wrong. Let's explore how not to make silly mistakes.
Transparent database benchmarks help customers make better decisions and push vendors to build better products.
PostgreSQL's Row Level Security sounds like a clean way to enforce access control at the database layer, but the foot-guns, pooling incompatibilities, and performance traps often make it more trouble than it's worth.
There are many ways to slice a Postgres database for multi-tenant applications. Let's look at the three most common approaches and the trade-offs.
Dead tuples from high-churn job queues can silently degrade your Postgres database when vacuum falls behind—especially alongside competing workloads. Traffic Control keeps cleanup on track.
Practical patterns for leveraging Database traffic Control
Not all traffic is created equal.When a database is overwhelmed, you want the important queries to keep executing, even if that means shedding lower-priority work.This is a much better outcome than the alternative: a total database outage.
A high memory percentage in PlanetScale Postgres is not necessarily a problem. Let's compare how memory and CPU usage are different, how not all memory usage is created equal, and which signals actually require attention.
PlanetScale is a co-design and launch partner for the Stripe Projects developer preview, allowing you or your coding agents to provision and manage databases and other dev tools directly from the Stripe CLI.
Introducing query tagging improvements in Postgres Query Insights
Learn how Traffic Control enforces real-time limits on Postgres queries.
Enforce real-time limits on your Postgres query traffic to protect your database from runaway queries and unexpected load spikes.
PgBouncer is the perfect pairing for Postgres's biggest weakness: connection management. Tuning it just right is important to make this work well, and here we cover everything you need to know
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.
Stream real time video and audio through PostgreSQL on PlanetScale.
Build a real-time application with PlanetScale and the Cloudflare global network. Infrastructure choices you won't need to migrate away from once you hit scale.
Connect Claude, Cursor, and other AI tools directly to your PlanetScale database to optimize schemas, debug queries, and monitor app performance.
What are database transactions and how do SQL databases isolate one transaction from another?
How PlanetScale uses Cursor commands to automate our changelog entries
Postgres 18 is now available on PlanetScale
We've lowered the entry price for using PlanetScale Metal to $50 and added more flexibility in storage-to-compute ratios.
Introducing AI-powered index suggestions for PostgreSQL
You can now create single node Postgres databases on PlanetScale starting at just $5.
On 2025-10-20, there was an incident that affected PlanetScale, initially caused by DNS misconfiguration in one of PlanetScale’s service providers, followed by several hours of capacity constraints and network instability.
Postgres 18 brings a significant improvement to read performance via async I/O and I/O worker threads. Here we compare its performance to Postgres 17.
A new hybrid design for scalable vector indexes and a reference implementation in MySQL
You can now easily set up PlanetScale databases with Cloudflare Workers using this native integration.
Processes and threads are fundamental abstrations for operating systems. Learn how they work and how they impact database performance in this interactive article.
PlanetScale for Postgres is now generally available.
Why a lagging client can stall or break failover, and how MySQL’s GTID model avoids it.
Benchmarking Postgres in a transparent, standardized and fair way is challenging. Here, we look at the process of how we did it in-depth
Every time you use a computer, the cache is working to ensure your experience is fast.
The principles and processes we follow for fault tolerance.
PlanetScale now supports Postgres
You can now use vector search and storage in your PlanetScale MySQL database.
A novel technique for implementing dynamic language interpreters in Go, applied to the Vitess SQL evaluation engine
Our experience running AWS EBS at scale for critical workloads
Take an interactive journey through the history of IO devices, and learn how IO device latency affects performance.
Learn how PlanetScale Metal was built and how we ensured it is safe.
Our experience upgrading the Query Insights database to PlanetScale Metal
Learn how PlanetScale keeps its private fork of Vitess up-to-date with OSS
Learn about the database sharding scaling pattern in this interactive blog.
Design considerations for implementing a database throttler
Run Vitess workflows right from within PlanetScale. Migrate data from unsharded to sharded keyspaces, manage traffic cutover, and easily revert when problems arise.
You can now use the vector data type for vector search and storage in your PlanetScale MySQL database.
Design considerations for implementing a database throttler with a comparison of singular vs distributed throttler deployments.
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.
PlanetScale now supports instant DDL. Where eligible, you can run deploy requests that complete near-instantly.
Learn about some design considerations for implementing a database throttler.
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.
Learn about the new PlanetScale Insights index tracking feature.
Data migrations are a critical part of the database lifecycle, and are sometimes necessary for version upgrades, sharding, or moving to a new platform. In many cases, migrations are painful and error-prone. In this article, we walk through how migrations are performed at PlanetScale, and offer ad...
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.
Learn the basics of Change Data Capture (CDC) and how to leverage Vitess VStream API to build data pipelines.
Learn about the options for running non-blocking schema changes natively to MySQL, using Vitess, or other tools
The Vitess query planner takes multiple passes over a query plan to optimize it as much as possible before execution. A recent tricky bug report led to an improvement in how the optimizer functions.
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.
Learn about the different types of sharding: directory-based, range-based, and hash-based plus some of the pros and cons of each.
Vitess 20 is now generally available.
PlanetScale and Vitess have a close relationship. Learn what it looks like to run Vitess on your own vs using PlanetScale. We cover cost, time to implement, management, and more.
How we implemented a consistent lookup Vindex in Vitess to ensure data consistency without using 2PC
The adaptive hash index helps to improve performance of the already-fast B-tree lookups
With global replica credentials, you can now automatically route reads to the closest replica.
Learn how to visualize the memory usage of a MySQL connection
My experience working as an intern in the Vitess query serving team for PlanetScale.
Learn how PlanetScale uses GitHub Actions and PlanetScale to automate schema changes on our own application.
MySQL has built-in functionality for collecting statistics on and profiling your MySQL queries. Learn how to leverage these features to identify problems.
Understand the different versions of UUIDs and why using them as a primary key in MySQL can hurt database performance.
Vitess 19 is now generally available.
PlanetScale is committed to providing a reliable and sustainable platform for our customers, not just in the short-term, but forever. For this reason, we are prioritizing profitability.
Automatically receive recommendations to improve database performance, reduce memory and storage, and improve your schema based on production database traffic.
You can now enable foreign key constraints to enforce referential integrity in your PlanetScale database.
Learn about a few common mistakes when designing your MySQL database schema.
You can now build integrations that seamlessly authenticate with PlanetScale and allow management access to your users’ organizations and databases from your application.
Today, in our effort to continue being the best database for serverless and applications that require massive scale, we are deprecating the Scaler plan.
Learn the key differences between Amazon Aurora blue/green deployments and PlanetScale branching.
Learn about the three main aspects of database scaling: storage, compute, and network.
Learn different considerations and best practices for quickly and efficiently recovering your database when downtime hits.
In this blog post, we explore how complex data and geographic features can be represented in MySQL.
Learn about how Amazon Aurora replication works, and how it compares to the traditional MySQL replication strategy used by PlanetScale.
The Vantage + PlanetScale integration is now available.
Learn about the various isolation levels used by MySQL to allow concurrency in your database.
We are releasing schemadiff, an open source command line tool to generate diffs between two MySQL databases.
You can now use foreign key constraints in PlanetScale databases.
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.
Learn what HTAP is, how HTAP compares to OLAP and OLTP, and some pros and cons of HTAP.
This new update to PlanetScale Insights introduces smart query monitoring to detect slower than expected queries in your database.
Learn what went into building PlanetScale webhooks from a security perspective. This article covers SSRF, webhook validation, DDoS, and more.
There is more to sharding than simply increasing data throughput. In this article, we explore three different benefits of sharding your database.
Learn the best practices for configuring MySQL replication, and how to ensure your data is always available.
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.
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.
We are pleased to announce that PlanetScale has been named on the Deloitte Technology Fast 500™.
Vitess 18 is now generally available, with a number of new enhancements designed to improve usability, performance, and MySQL compatibility.
Learn how you can extract, load, and transform your PlanetScale data with Fivetran.
Learn how to safely drop tables in MySQL by checking if the table is still in use and how PlanetScale makes this process much easier.
You can now automatically trigger HTTP callbacks on events in PlanetScale to build custom integrations, notifications, and workflows.
Learn about what database replication is and some real-world use cases of MySQL replication that can benefit your database scalability strategy.
Learn how to sync user data from a Clerk project into your PlanetScale MySQL database with webhooks using Netlify and Netlify Functions.
Deploy PlanetScale in your AWS or GCP account with our Enterprise PlanetScale Managed plan.
Bringing weekly reports of the most important parts of your database, straight to your inbox.
Learn what distributed caching systems are, how they complement MySQL databases, and potential issues you might face when implementing them.
Learn the basics of MySQL partitioning, including partitioning with range, list, and key strategies, as well as how partitioning relates to database sharding.
Deep dive into MySQL’s connection handling mechanisms for optimal connection pooling and improved concurrency.
Learn how we utilized Markdoc to create custom, extendable product onboarding at PlanetScale.
Compare PlanetScale’s multi-cloud database platform for Postgres and Vitess with Amazon Aurora, one of AWS’s managed relational database services. Discover the strengths, features, and benefits of each platform to choose the best fit for your database needs.
Compare PlanetScale’s multi-cloud database platform for Postgres and Vitess with Amazon RDS, AWS’s managed relational database service. Discover the strengths, features, and benefits of each platform to choose the best fit for your database needs.
We are adding vector storage and search to MySQL, enabling you to use PlanetScale for your AI use cases.
Not sure when to shard your MySQL or Postgres database? This article covers when you should consider horizontal sharding as a scaling strategy in MySQL and Postgres, and some other scaling options before then.
Explore what to consider when deploying databases to Kubernetes, and how PlanetScale utilizes Kubernetes and Vitess to run hundreds of thousands of databases.
Grasping when and how to shard, selecting the ideal shard keys, and managing cross-shard queries effectively can prove difficult even for seasoned engineers. Learn how to do this, and more in this tech talk.
Learn how to use the new PlanetScale Netlify integration to simplify the process of wiring up a database to your Netlify applications.
Learn how to build virtual relationships between tables in PlanetScale while using the Drizzle TypeScript ORM.
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.
Why PlanetScale deploys branch changes near-atomically, and how it applies concurrency and dependency resolution without impacting production databases.
Learn about all of the tech driving every PlanetScale database.
Learn how middleware technology works, the pitfalls of application-level sharding, and how Vitess enables horizontal sharding of MySQL for near infinite scale.
PlanetScale now supports IP restrictions for database passwords as another tool to operate your database securely.
How we built a scalable telemetry pipeline with Apache Kafka and PlanetScale.
Databases can cost your company millions if they don’t function as they should. What are the biggest pitfalls, and how can you avoid them?
A guide on what slows developers down, why it matters, and how a better database can unlock developer productivity.
In this tech talk, we demo how to build your own CI/CD pipelines, where to incorporate the database, and why the database has historically been left out of CI/CD.
Learn how to solve a tree traversal N+1 query problem in your Rails application.
See how Scaler Pro combines the best of our current plans for companies of all sizes while enabling you to grow with the best database for serverless.
Sharding and partitioning are two common ways to improve performance, manageability, and availability of larger databases.
This video is an introduction to the PlanetScale database platform and how it can increase developer velocity, including a demo of features, such as branching, deploy requests, and query insights.
A detailed description of the multi-layered approach PlanetScale takes to ensure your data is safe.
In this release of Vitess, several significant enhancements have been introduced to improve the compatibility, performance, and usability of the system.
PlanetScale and Hightouch cover how you can make use of one of your most valuable company assets: product data.
Learn the differences between datetimes and timestamps in MySQL, the DATE, YEAR, and TIME columns, timezones, and when to use each.
Creating generated hash columns in MySQL for faster strict equality lookups.
Learn how to integrate PlanetScale with Node applications built using the Serverless Framework on AWS.
PlanetScale has deepened its relationship with AWS to benefit customers who use AWS services, officially joining the AWS ISV Accelerate Program!
Learn how to sync data between PlanetScale and other platforms using Hightouch.
Using redundant conditions as a method to unlock obfuscated indexes and improve performance in MySQL.
See how Vitess acts as a database proxy that creates an illusion of a single database when technically, the query is sent to multiple MySQL instances.
Learn about the latest updates we made to our database overview page: load balancers, shards, and more.
Explore the evolution of “Database DevOps” and its impact on development workflows in this tech talk.
We’re excited to announce that PlanetScale is now available on the Google Cloud Marketplace.
Understanding the differences between character sets and collations in 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.
Learn about safely using the expand, migrate, and contract pattern to make database schema changes without downtime and data loss.
There are several reasons why MySQL might not consider your index, and in this article we’ll explore some of the most common ones.
Learn how to create serverless Laravel applications by deploying them to AWS Lambda and using PlanetScale as the database.
Learn how PlanetScale uses Git-like three-way diff to resolve schema change conflicts across database branches.
You can now use Insights to view time-series performance data on a per-query pattern basis.
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.
An overview of the different ways to paginate in MySQL including limit/offset pagination and cursor pagination plus the pros and cons of each.
How to prevent schema changes from being scary with database best practices and PlanetScale.
Learn what database sharding is, how sharding works, and some common sharding frameworks and tools.
Learn about our latest update safe migrations and how it affects our branching workflow.
Learn how the schema migrations are performed using a single state definition.
Learn how the schema migrations are performed iteratively by evolving change scripts.
Easily integrate common PlanetScale operations directly into your GitHub Actions workflows.
PlanetScale and Netlify join forces to cover how to integrate PlanetScale into Netlify Functions for common SaaS application use cases.
Learn how to read the output in MySQL EXPLAIN plans so you can utilize them to improve query performance.
Connection pooling reduces the overhead of establishing new database connections. Learn how connection pooling works and how it is handled in Vitess.
Learn what you should look out for when upgrading an existing database from MySQL 5.7 to 8 and how to change your database to be compatible with the new version.
Learn about the Ruby on Rails workflow that protects your database and application from accidental downtime and data loss.
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.
Learn how to use PlanetScale within DevOps pipelines.
Learn how to use Python SQLAlchemy with MySQL by working through an example of creating tables, inserting data, and querying data with both raw SQL and SQLAlchemy ORM.
Learn about some of the latest enhancements we made to the Branching page in the PlanetScale dashboard.
Vitess 16 is now generally available with updates to VDiff v2, VTOrc, MySQL compatibility, and more.
Learn about some of the possible downsides of using database indexes and how to remove unused database indexes in MySQL.
Join PlanetScale’s Lead Infrastructure Engineer for Edge connectivity for an explainer on our findings regarding HTTP/3 and the MySQL protocol.
Learn how to migrate from Postgres to MySQL, Postgres vs MySQL incompatibilities, and more.
Manage your databases programmatically with the PlanetScale API.
An overview of some common MySQL error codes you may run into, what they mean, and how to solve them.
Learn about sharding, connection pooling, and more from PlanetScale Technical Solutions Architect Jonah Berquist.
Learn what the N+1 queries problem is by working through an example N+1 query updating it to a JOIN statement and going over how to identify them in the future.
A quick glimpse on Support at PlanetScale and the issues we see the most often.