Best Serverless Databases in 2026 (Compared)
A practitioner comparison of the leading serverless databases by use case, cold-start behavior, branching, pricing model, and lock-in.
Key takeaways
- For most new apps in 2026 the best serverless database is Neon, Postgres that scales to zero and branches per pull request, billed at $0.106 per CU-hour on its Launch plan as of October 2026.
- Use DynamoDB for key-value at any scale, Turso or Cloudflare D1 for edge SQLite reads, and Upstash for serverless Redis.
On this page
Start with Neon unless you have a reason not to: it is standard Postgres, scales to zero when idle, and branches a full database per pull request. DynamoDB is the pick for key-value access at any scale, Turso or D1 for read-heavy edge apps, and Upstash for serverless Redis. Everything else is a specialist.
Verified against
Neon, PlanetScale, Supabase, Aurora Serverless v2 (Aurora PostgreSQL 16.3+ / Aurora MySQL 3.08.0+ for auto-pause), CockroachDB Cloud, Turso, Cloudflare D1, DynamoDB and Upstash, against each vendor's official pricing pages and the AWS Aurora User Guide. Checked October 2026.
A serverless database is one you never size: it bills for requests, rows, or compute-seconds, scales capacity for you, and often drops to near-zero cost when idle. If you are still deciding whether you want one at all, read serverless vs traditional databases first.
The short list, side by side
| Database (as of October 2026) | Engine | Scales to zero | Free tier | Pricing unit |
|---|---|---|---|---|
| Neon | Postgres | Yes; Free suspends after 5 min idle | 100 CU-hours and 1 GB per project | $0.106/CU-hour + $0.35/GB-month (Launch) |
| PlanetScale | Postgres, or MySQL on Vitess | No | None | Postgres from $5/month; Vitess from $39/month |
| Supabase | Postgres plus auth, APIs, storage | Free projects pause after 1 week idle | 2 active projects, 500 MB database | Pro from $25/month |
| Aurora Serverless v2 | Postgres or MySQL | Yes, with 0-ACU auto-pause | No | ACU-hours plus storage |
| CockroachDB Cloud Standard | Postgres-compatible distributed SQL | No | 30-day trial, $400 credit | $0.092/vCPU-hour + storage |
| Turso | SQLite (libSQL) | Usage-billed | 5 GB, 500M rows read/month | Developer from $4.99/month, billed yearly |
| Cloudflare D1 | SQLite | Usage-billed | 5 GB, 5M rows read/day | $0.001/M rows read, $1.00/M rows written past included |
| DynamoDB | Key-value and document | On-demand, per request | 25 GB storage | $0.125/M reads, $0.625/M writes (us-east-1) |
| Upstash Redis | Redis | Per command | 250 MB, 500K commands/month | $0.20 per 100K commands |
Serverless SQL: Neon, PlanetScale, Supabase
Neon splits compute from storage, which is what makes its headline features work. Compute suspends when idle and resumes on the next connection, so a staging environment costs almost nothing overnight. On the Scale plan the suspend window is configurable from 1 minute to always-on. Branching copies a full database instantly with copy-on-write: run migrations or a load test against the branch, then throw it away. Lock-in is low because pg_dump gets you out. The head-to-head is in Neon vs PlanetScale.
PlanetScale runs MySQL on Vitess, the sharding layer that carried YouTube, and now sells Postgres as well. It does not scale to zero and has no free tier, so there is a monthly floor: $5 for a single-node Postgres PS-5, $39 for the smallest three-node Vitess cluster, in AWS us-east-1. You get horizontal scale and online schema changes through deploy requests. Vitess constraints apply: cross-shard joins and foreign keys need care.
Supabase is Postgres wrapped with auth, generated REST and GraphQL APIs, row-level-security tooling, storage, and edge functions. You are buying a backend platform, which is the fastest path to a working app for a small team. Lock-in is low on the database and higher if you lean on auth and the generated APIs.
Distributed SQL: Aurora Serverless v2 and CockroachDB
Aurora Serverless v2 can set minimum capacity to 0 ACUs and auto-pause on Aurora PostgreSQL 16.3, 15.7, 14.12, 13.15 or later, or Aurora MySQL 3.08.0 or later. The idle window runs from 300 seconds to 86,400 seconds. Turning it on for an existing cluster is one call:
$ aws rds modify-db-cluster --db-cluster-identifier my-dev-cluster \
--serverless-v2-scaling-configuration MinCapacity=0,MaxCapacity=8,SecondsUntilAutoPause=600
$ aws rds describe-db-clusters --db-cluster-identifier my-dev-cluster \
--query 'DBClusters[*].ServerlessV2ScalingConfiguration|[0]'
{
"MinCapacity": 0,
"MaxCapacity": 8.0,
"SecondsUntilAutoPause": 600
}
AWS documents a typical resume of about 15 seconds, and 30 seconds or more after a day paused, so this is for dev, test, and internal apps, not latency-sensitive paths.
CockroachDB Cloud speaks the Postgres wire protocol, distributes data across nodes, and survives zone failures without manual failover. As of October 2026 the Standard tier bills per vCPU-hour, so treat it as autoscaling, not scale-to-zero. Both are the answer when losing a single primary is unacceptable.
Edge SQLite, NoSQL, and Redis
Turso and Cloudflare D1 both put SQLite near your users and bill on rows read and written. Writes go to one primary, so they shine for read-dominated workloads; D1 is the natural pick inside Workers, and Turso's embedded replicas serve reads from a local file anywhere else. Watch D1's free write cap: 100,000 rows written per day.
DynamoDB is the default serverless NoSQL store: on-demand capacity, single-digit-millisecond reads at any scale, as long as you design keys around your access patterns. Lock-in is high; the data model and API don't port. Upstash fills the Redis slot with per-command billing, which suits caches and rate limiters called from serverless functions.
The trade-offs nobody escapes
Cold starts: anything that scales to zero pays a wake penalty on the first request. Fine for staging, worth measuring on production paths.
Connections: serverless functions open a connection per invocation and can exhaust Postgres fast. Use the vendor's HTTP driver or a pooler like PgBouncer. Neon's serverless driver over HTTP:
// lib/db.js
import { neon } from '@neondatabase/serverless';
const sql = neon(process.env.DATABASE_URL);
export const activeUsers = () => sql`
SELECT id, email FROM users WHERE active = true LIMIT 20
`;
There is no long-lived TCP socket to leak from a Lambda or an edge function.
Egress: cross-region reads and heavy result sets add up. Neon's Scale plan charges $0.10/GB of public egress past 500 GB per project. Keep compute and data in the same region.
The failure modes, by error
FATAL: sorry, too many clients already(any Postgres): functions opened more connections than the server allows. Switch to the HTTP driver or the pooled connection string.- Connection timeouts right after idle (Aurora, Neon): the first request hit a paused instance. Raise client connect timeouts past 15 seconds for Aurora (30 if it sleeps more than a day) and add retry logic, which AWS recommends.
- Aurora never pauses: an open session, an RDS Proxy, logical or binlog replication, or a global database primary keeps the writer awake. Check
DatabaseConnectionsin CloudWatch. pg_cronjobs silently skipped (Aurora): a paused instance does not wake for scheduled jobs; they are dropped, not queued.ProvisionedThroughputExceededExceptionorThrottlingException(DynamoDB): a hot partition key. On-demand does not fix a bad key design.
Where this breaks
Scale-to-zero pricing only wins while a database is mostly idle. A production Postgres busy around the clock bills compute every hour, and a provisioned instance with a reserved discount can come out cheaper. Usage-billed engines also turn a bad query into a bad invoice: a full table scan on D1 or Turso is billed per row read. And none of these lists help with compliance needs like a specific region or private networking, which vary by plan; check that before price.
Questions people ask
What is a serverless database?
A serverless database is a managed database you never size or patch: the provider scales capacity with load and bills by usage, such as compute-hours, rows read, or requests, instead of a fixed instance. Many scale to zero when idle. Neon, Aurora Serverless v2, DynamoDB on-demand, Turso, Cloudflare D1, and Upstash all fit; PlanetScale is managed but bills by cluster size.
Does Aurora Serverless v2 scale to zero?
Yes, on supported engine versions. Set the cluster's minimum capacity to 0 ACUs and instances auto-pause after an idle window you choose, from 300 seconds to one day. You pay nothing for instance capacity while paused, though storage still bills. AWS says resume typically takes about 15 seconds, longer after 24 hours paused, so raise client connection timeouts accordingly.
How do I pick a reliable serverless database for production?
Match the engine to the access pattern first: Postgres for relational data, DynamoDB for key-value at scale. Then check three things: the cold-start time if it scales to zero, whether it has an HTTP driver or pooler for serverless functions, and whether you can export your data with standard tools. Neon and Aurora pass all three for Postgres.
The decision, concretely
Match the workload, not the hype; the broader framework across engines is in choosing the right database for your workload.
- Postgres with scale-to-zero and preview branches? Neon.
- MySQL that must scale past a single primary? PlanetScale.
- A full backend fast, with a small team? Supabase.
- Global reads with low latency? Turso, or D1 on Workers.
- Key-value at scale? DynamoDB. Serverless Redis? Upstash.
The call we'd make
For most new applications in 2026, start with Neon: standard Postgres keeps your options open, scale-to-zero keeps early costs near nothing, and branch-per-pull-request is a better dev workflow. If you already know you are MySQL-shaped and heading for real scale, start on PlanetScale and skip the migration. Go edge-first only when read latency to a global audience is the product requirement, and confirm current prices yourself before building the bill into your model.
Sources
Cite this article
Kiril Urbonas (2026). Best Serverless Databases in 2026 (Compared). DevOpsNess. Updated 2026-10-31. https://www.devopsness.com/blog/best-serverless-databases
[Best Serverless Databases in 2026 (Compared)](https://www.devopsness.com/blog/best-serverless-databases) (Kiril Urbonas, DevOpsNess, updated 2026-10-31)
More from Cloud
Explore more articles in this category
Kubernetes 1.34 Hit End of Life Oct 27: What EKS, GKE and AKS Do Next
Upstream stopped patching 1.34 on October 27. EKS starts billing 6x on December 2, AKS drops it at the end of November, and GKE gives you until January. The dates, the commands to find your 1.34 clusters, and the upgrade order.
.NET 8 Support Ends November 10: The Lambda and Azure Functions Checklist
.NET 8, .NET 9, the Lambda dotnet8 runtime and the Azure Functions in-process model all lose support on November 10, 2026. Inventory commands, the isolated-worker migration and a CI gate.
Lambda Python 3.10 Is Deprecated Today: Find Every Function and Move to 3.13
AWS deprecated the Lambda python3.10 runtime on October 31, 2026. Functions keep running, patches stop. The inventory commands, IaC diffs and AL2023 gotchas for moving to python3.13.
You might have missed
Evergreen posts worth revisiting.