What Is PlanetScale? A Complete Guide to Serverless MySQL on Vitess for 2026
PlanetScale is a serverless MySQL platform on Vitess built for scale. Explore its architecture, edge drivers, pricing, and trade-offs. Find out if it fits you.

PlanetScale is a fully managed, MySQL-compatible database platform built on Vitess, the open-source system designed to scale MySQL horizontally across many machines. The practical question for teams evaluating it in 2026 is not merely “What is PlanetScale?” but whether its production reliability, serverless access model, and sharding architecture justify choosing it over conventional managed MySQL, Neon, Turso, or a self-managed database.
The short answer: choose PlanetScale when you need production OLTP, predictable low-latency access, and a credible path to horizontal scale without operating Vitess yourself. It is less compelling for disposable experiments whose main requirement is scale-to-zero, and PlanetScale explicitly does not intend to optimize its core platform around short-lived “agentic” development databases.
PlanetScale in 2026, in brief
>
- Best fit: Production MySQL-compatible OLTP, serverless applications, and workloads likely to outgrow one database node.
- Core advantage: Managed Vitess provides query routing, sharding, resharding, and operational isolation.
- Serverless model: HTTP-based access works in runtimes that cannot maintain ordinary TCP database connections.
- Main trade-off: The platform prioritizes always-ready production infrastructure over scale-to-zero experimentation.
- Alternatives: Pick Neon for serverless Postgres and scale-to-zero; pick Turso for SQLite-compatible data near users.
What problem does PlanetScale solve?
Running a relational database remains disproportionately painful. Even experienced teams must manage upgrades, replicas, failovers, connection storms, capacity planning, schema changes, and the occasional 3 a.m. incident. A conventional managed service removes some hardware work, but it does not necessarily remove architectural limits or operational attention.
PlanetScale’s strongest appeal is therefore not any single feature. It is the promise that the database becomes boring: a managed relational platform rather than a MySQL server that the application team must continually nurse. PlanetScale describes its offering as a database platform for highly available, scalable production workloads, with Vitess handling the distributed architecture underneath.[6]
That positioning explains the unusually strong “set and forget” language in current practitioner discussions:
planetscale doesn't exist
i waited to collect full 4 months running both dev and prod entirely on it before saying anything.
guess what. no feedback, no issues, no downtime, no nothing. running your db on planetscale is like not having a db at all.
first time in over a decade i've had a service i never need to look at. it just works.
pristine tier service. and i'm probably one of the least profitable clients they have.
@planetscale @samlambert and company are actually goated.
I am obsessed with PlanetScale. By far the best database experience I've ever had in my life. I've self-hosted MySQL about 40 times, have used multiple managed database services and PS beats them all. A true set and forget experience.
View on X →Those are individual experiences, not controlled reliability studies, but they identify the outcome buyers actually want: fewer database incidents and less engineering time spent on routine operations.
Performance can be part of the draw too. Lee Robinson reported a substantial API improvement after moving a Next.js site from Firebase and Redis to MySQL on PlanetScale:
New post: From Firebase/Redis to MySQL with PlanetScale ✨
Learn how I migrated my Next.js site to use MySQL with @planetscaledata, resulting in 10x faster response times for my APIs.
A “10x” migration result should not be generalized into a platform-wide benchmark. Data modeling, indexes, network paths, cache behavior, and the previous architecture all matter. But it illustrates why relational semantics plus a highly optimized serving layer can outperform an awkward combination of products for a specific application.
How do Vitess, VTGate, and database sharding work?
The community’s shorthand explanation is accurate, but incomplete:
Long story short : Vitess
It allows sharding of your MySQL database. So it scales horizontally much better than Postgresql.
My knowledge stops here.
Vitess is a distributed database system built around MySQL. It presents applications with a logical database while allowing the underlying data to be divided into shards, each backed by MySQL instances. Vitess originated to solve large-scale MySQL operational problems and supports moving from an unsharded deployment to a sharded topology as requirements grow.[8]
Three concepts make the architecture easier to understand:
- VTGate is the application-facing query router. It accepts database traffic, determines where a query should go, and combines results when necessary.
- VTTablet manages and mediates access to an individual MySQL instance, exposing it as part of the wider Vitess topology.
- The topology service stores information about shards, tablets, keyspaces, and serving state so components know how the cluster is organized.
PlanetScale’s architecture documentation describes how these layers separate applications from the details of individual MySQL hosts.[7] Its deeper architectural material also explains that a PlanetScale database comprises more than a single MySQL process: routing, tablet management, replication, topology, and operational controls work together.[9][10]
Why does this make MySQL horizontally scalable?
A traditional relational database usually scales vertically first: add CPU, memory, and storage to one primary server. Read replicas help with reads, but write scaling eventually becomes the harder problem.
Sharding divides rows among multiple database groups. In a well-designed sharding scheme, more capacity can be added by introducing shards instead of continually enlarging one machine. Vitess can also support resharding, changing how data is divided as a workload evolves.[8]
The important distinction is not that PostgreSQL is inherently incapable of horizontal scale. Distributed Postgres systems exist. Rather, PlanetScale offers a mature, integrated Vitess path for teams choosing the MySQL ecosystem. Applications talk to the logical database, while the platform handles much of the topology that would otherwise leak into application code and operational runbooks.
Development and production database branches sit on this managed platform as well. They are operational database environments, not Git repositories, but the branching metaphor gives teams an isolated workflow for database changes through PlanetScale’s platform model and tooling.[1]
Can PlanetScale really handle millions of queries per second?
PlanetScale markets the platform with aggressive production-scale claims:
✅ No cold starts
✅ Unlimited connections
✅ 10PB storage limit
✅ Millions of QPS
✅ Pay by usage
PlanetScale is the best database for serverless workloads.
These are vendor claims, so they should be read as statements of platform capacity rather than guarantees that every schema or query pattern will achieve millions of QPS. Application throughput still depends on indexing, transaction shape, hot rows, shard keys, query complexity, and available resources.
Community discussion adds a concrete example of the scale associated with the platform:
They have better engineers and the whole experience is way more professional. You also cannot directly compare prices since PlanetScale is so hyperoptimized you need like 1/4 the resources of another provider to host the same workload. They literally host databases that do 4mil queries per second with 400TiB of data:
View on X →The more useful point is not the headline number. It is that Vitess gives PlanetScale several places to optimize: query routing, admission behavior, connection handling, tablet placement, replication, and shard distribution. That is a materially different operational surface from simply provisioning a larger MySQL VM.
Why can reducing concurrency improve throughput?
Database capacity is not the same as the number of simultaneous requests it can accept. Once concurrency passes an efficient point, requests compete for CPU, locks, memory, I/O, and internal scheduling. Latency rises; each query occupies resources longer; and total completed work can fall.
Reduce parallelism. Increase throughput.
Sounds backwards, but past a certain point, each additional in-flight query can make all the others slower.
We recently observed this in a customer's Vitess database. How it happened, and the fix:
https://planetscale.com/blog/concurrency-vs-throughput-vitess-mysql
This is a critical production lesson. “Unlimited connections” does not mean unlimited useful parallel work. A scalable front door can protect applications from connection-count constraints, but query concurrency still needs admission control and workload-aware tuning.
The broader cost argument follows from the same principle. If routing and execution are tuned well, a workload may need fewer resources than it would on a less optimized deployment. However, the “one-quarter of the resources” figure in the X discussion should be treated as a practitioner’s assessment, not a universal sizing formula. Teams should compare costs using their own schema, peak traffic, storage, replicas, and latency requirements.
How does PlanetScale work with serverless functions and edge runtimes?
Traditional MySQL clients open TCP connections. That model becomes awkward in serverless systems because functions can start rapidly, execute briefly, and create many concurrent connections. Some edge runtimes do not expose ordinary TCP sockets at all.
PlanetScale’s JavaScript serverless driver addresses this by sending database queries over HTTP. It is compatible with the Fetch API, making it suitable for serverless and edge environments where a conventional MySQL client cannot operate.[2][3] PlanetScale’s launch explanation explicitly framed the driver around environments that lack raw TCP access.[4]
This changes the connection model:
- Application code issues a query through the driver.
- The driver uses HTTP rather than maintaining a native MySQL connection from the runtime.
- PlanetScale’s service handles the database-side path into the Vitess infrastructure.
The result is not “a database running inside the edge.” The data still lives in PlanetScale’s infrastructure. The benefit is that edge code can reach it through an API available in constrained runtimes.
A conventional HTTP API placed in front of PlanetScale can achieve a related architecture, but the official driver removes the need to build a bespoke translation service for common JavaScript access patterns.[5]
What does the Cloudflare integration change?
The 2026 Cloudflare integration brings provisioning and connectivity closer to the Workers workflow:
Create PlanetScale Postgres and MySQL databases directly from Cloudflare. Use them with Workers and Hyperdrive for connection pooling and caching.
https://developers.cloudflare.com/changelog/post/2026-06-18-planetscale-databases-cloudflare-billing/
Hyperdrive adds connection pooling and caching between Workers and supported databases. That matters because HTTP-compatible access and pooled native connections solve related but distinct problems: HTTP makes constrained-runtime access possible, while pooling controls how bursts of function invocations translate into database connections.
PlanetScale is therefore a strong fit for serverless applications that must remain ready under unpredictable traffic. But teams should still examine data locality. An edge function executing near the user does not eliminate network latency if every query travels to a distant database region.
PlanetScale vs Neon vs Turso: Which serverless database should you choose?
The comparison circulating among developers is useful because these products represent three different architectural priorities:
Serverless Databases: Neon, Turso, and PlanetScale
Neon (serverless Postgres), Turso (edge SQLite), and PlanetScale (MySQL on Vitess): how each works under the hood, when branching and scale-to-zero matter, and how to choose.
https://blog.redlinesoft.net/posts/serverless-databases-neon-turso-planetscale/
Choose PlanetScale for production MySQL and horizontal growth
PlanetScale is the strongest fit when:
- Your application uses MySQL-compatible tooling or semantics.
- The workload is production OLTP: frequent, small reads and writes serving an application.
- Cold starts are undesirable.
- You anticipate high throughput or eventually need to shard.
- You want an HTTP driver for serverless and edge runtimes.
- Your team would rather pay for managed operations than run Vitess.
The enthusiasm sometimes becomes absolute:
There's only one scalable database out there - Planetscale 😄
View on X →No database is literally the only scalable option. The defensible version of that claim is narrower: PlanetScale provides one of the clearest managed paths from an ordinary MySQL-compatible application to a Vitess-sharded production topology.
Choose Neon when Postgres and scale-to-zero matter more
Neon is the more natural choice when the application and team are already committed to PostgreSQL, or when scale-to-zero economics are central. It also appeals to workflows that use disposable database branches for previews, tests, and rapidly created development environments.
For intermittent projects, reducing idle cost may matter more than eliminating cold starts. PostgreSQL-specific extensions, syntax, and ecosystem compatibility can also outweigh PlanetScale’s MySQL/Vitess scaling story.
Choose Turso for SQLite-compatible data near users
Turso belongs in a different category: edge-distributed, SQLite-oriented infrastructure. It fits applications that value lightweight databases, local reads, and geographic distribution more than a centralized MySQL-compatible OLTP architecture.
The decision is therefore not “Which serverless database has the longest feature list?” It is:
- PlanetScale: Always-ready production relational workloads and horizontal scaling.
- Neon: Serverless Postgres, branching, and scale-to-zero.
- Turso: SQLite compatibility and edge-local data patterns.
Why won’t PlanetScale optimize for agentic workloads?
PlanetScale’s leadership has drawn an unusually explicit boundary around its target market:
PlanetScale is built for production use cases. We are not going to optimize for vibe coding and these "agentic" development workloads. There are severe trade offs involved and it's not possible to do both. You don't actually need a database server for agentic coding.
View on X →“Agentic” workloads often create databases automatically for generated prototypes, coding agents, previews, or short-lived experiments. Those use cases reward near-instant provisioning, aggressive suspension, scale-to-zero, and very low idle cost.
Production OLTP rewards a different set of properties: warm capacity, stable latency, controlled changes, strong operational practices, and predictable behavior under sustained load. Trying to optimize equally for both can force product and infrastructure compromises.
For hobbyists, this means PlanetScale should not be chosen merely because an AI tool needs somewhere to create temporary tables. SQLite, an embedded database, or a scale-to-zero service may be simpler and cheaper. For production teams, PlanetScale’s refusal to chase every new workload can be reassuring: engineering effort remains concentrated on the serving path.
That focus does not mean the platform is static. PlanetScale now supports Postgres offerings, and internal work has included Neki, described as an approach to horizontally scalable Postgres:
Some personal news: today is my last day at PlanetScale.
Over the last five and a half years, I started with Vitess, then we brought Postgres to PlanetScale, and lately I got to work on Neki, our take on horizontally scalable Postgres. I loved every part of it.
I've been lucky to work alongside people I deeply admire and respect, people I won't forget. This wasn't an easy decision, honestly. I love this team, but I also feel it's time to try something different.
Thank you to everyone who was part of this. I'm very excited about what's next and will write about it soon.
The departure described in that post should not be overinterpreted as a product signal by itself. The more relevant takeaway is that PlanetScale’s scope has expanded beyond its original MySQL/Vitess identity, even while production database infrastructure remains its stated center of gravity.
How much does PlanetScale cost in 2026?
Cost discussions need historical context. Older posts still describe PlanetScale as a free serverless MySQL service:
個人開発やサービススタート時の悩みのタネの一つがDBサーバー。
Firestoreは無料だけど、document dbで検索に弱いからRDBを使いたい。
でもAWSやGCPは高い。
そこでPlanetScale。
5GBまで無料で使えるサーバーレスのMySQLです。
今度からこれで良さそう。
https://qiita.com/tak001/items/cfbaa9dcb542929ff235
That reflects an earlier product era. PlanetScale deprecated its Hobby plan, so teams should not use old “5GB free” recommendations as current purchasing guidance.[14] It has also changed and deprecated other plan structures over time.[13]
As of the current 2026 pricing page, PlanetScale advertises Postgres single-node options starting at $5 per month and Metal configurations starting at $50 per month, alongside resource-based choices.[12] Exact cost depends on the selected database product, resources, storage, and usage, so the current pricing page—not an old tutorial or tweet—should drive budgeting.
The meaningful comparison is total cost of ownership, not merely monthly instance price. Include:
- Engineer time for upgrades, failover, backups, and incident response
- Replica and high-availability capacity
- Connection proxies and operational tooling
- Sharding and future migration work
- Overprovisioning needed to survive peaks
- The business cost of database downtime
That is why an experienced operator can recommend PlanetScale even when a cheaper VM exists:
Yep. The only database for OLTP workloads that I recommend now is @PlanetScale. And they haven't even send me a hat. But this new reason Jeff raised with AWS is another reason to just use PS.
View on X →Small, intermittent projects may still be better served by a lower-cost or scale-to-zero product. Production teams should evaluate whether PlanetScale’s operational savings and resource efficiency offset its service premium.
How does CDC work when Vitess shards MySQL?
Change data capture, or CDC, streams database changes into systems such as warehouses, search indexes, and event-driven services. A standard MySQL CDC client typically reads a server’s binary log, or binlog.
That becomes more complicated under Vitess. One logical database may span several MySQL instances, and resharding can change the physical topology. A client attached directly to individual binlogs would need to understand shard movement, offsets, and transitions.
Vitess provides VStream as a logical change-stream interface over that topology.[8] Artie’s description captures the operational consequence:
Artie supports @PlanetScale as a source, streaming through Vitess VStream instead of directly reading MySQL binlogs.
PlanetScale runs on Vitess, which can shard a logical database across multiple MySQL instances and reshard it as workloads change. A binlog-based CDC client would need to account for that topology. VStream provides the logical change-stream interface over it.
Vitess built VStream for this kind of CDC: it can copy current table contents before streaming new changes, resume an interrupted copy, and automatically handle resharding transitions when the stream remains connected.
Artie connects through VStream with a read-only PlanetScale database password. There is no binlog_format, binlog-retention, GTID, or replication-privilege configuration required. That credential supports both the initial backfill and ongoing CDC, with TLS enforced automatically.
For teams on PlanetScale, this means real-time replication without direct binlog access or manually connecting to individual shards. The managed-database experience can extend cleanly into the warehouse.
For data engineering teams, this is an important evaluation point. A managed sharded database changes how downstream systems should integrate. Prefer connectors that understand VStream rather than assuming PlanetScale is one ordinary MySQL primary.
The reported ability to snapshot existing rows, resume interrupted copies, and continue through resharding helps preserve the managed experience beyond the transactional database. Even so, teams should validate connector support, schema-change handling, ordering expectations, and warehouse delivery guarantees before committing a critical analytics pipeline.
Who should use PlanetScale in 2026—and who should not?
PlanetScale is a particularly strong choice for:
- Production SaaS teams running MySQL-compatible OLTP.
- Small infrastructure teams that cannot justify operating Vitess themselves.
- High-growth applications that need a path beyond vertical scaling.
- Serverless and edge developers that need Fetch-compatible database access.
- Organizations valuing stable latency more than scale-to-zero.
- Data-heavy teams whose CDC tools support Vitess VStream.
The practitioner verdict is frequently emphatic:
I’ve worked with databases for almost 15 years now and I’ve experienced everything. From a big outage for a huge Oracle 11g at 3 AM (I still have nightmares with that period of my life) to a gargantuan PostgreSQL 8.5 cluster (Yes, I’m that old) that failed dramatically and I had to “build” it from scratch.
I’ve seen all and I’ve tested a lot of PostgreSQL based products.
From my perspective, @PlanetScale is at the top of the hill, and it’s not even close.
The reasons? This blog explains the key principles behind it
best mysql and pg provider :)) @samlambert is also based af
we use them at work and the experience has been fantastic 🫡
PlanetScale is less suitable when:
- The workload is a disposable prototype or agent-generated experiment.
- The database sits idle most of the time and scale-to-zero dominates the decision.
- PostgreSQL-specific behavior or extensions are mandatory.
- SQLite and local edge replicas better match the application.
- The team wants full control over MySQL hosts and accepts the operational burden.
- The workload is too small to justify paying for production-oriented infrastructure.
The final decision is straightforward. Pick PlanetScale when the database is part of the product’s permanent production infrastructure and you want MySQL compatibility without inheriting the operational complexity of Vitess. Pick Neon when serverless Postgres and suspendability are the priority. Pick Turso when SQLite and edge locality define the architecture. For throwaway agentic workloads, use something intentionally optimized for ephemerality rather than forcing a production database platform into that role.
Sources
[2] PlanetScale serverless driver for JavaScript
[3] A Fetch API-compatible PlanetScale database driver
[4] Introducing the PlanetScale serverless driver for JavaScript
[5] Connect a Serverless API to MySQL using the PlanetScale HTTP API
[7] PlanetScale Vitess architecture
[8] What Is Vitess
[9] What makes up a PlanetScale Vitess database?
[10] Components of a Vitess cluster
[12] Pricing and plans
References (15 sources)
- PlanetScale documentation - planetscale.com
- PlanetScale serverless driver for JavaScript - planetscale.com
- A Fetch API-compatible PlanetScale database driver - github.com
- Introducing the PlanetScale serverless driver for JavaScript - planetscale.com
- Connect a Serverless API to MySQL using the PlanetScale HTTP API - blog.tericcabrel.com
- What is PlanetScale? - planetscale.com
- PlanetScale Vitess architecture - planetscale.com
- What Is Vitess - vitess.io
- What makes up a PlanetScale Vitess database? - planetscale.com
- Components of a Vitess cluster - planetscale.com
- Planet Scale and Vitess: A Technical Deepdive - medium.com
- Pricing and plans - planetscale.com
- Deprecating the Scaler plan - planetscale.com
- Hobby tier deprecation - FAQ - planetscale.com
- PlanetScale Review 2026 - Features, Pricing & Alternatives - srvrlss.io