Serverless Databases Compared (2026)
Serverless databases scale to zero when idle and scale up on demand. No servers to manage, no capacity planning. In 2026, there are six serious options. Here's how they actually compare.
The Contenders
| Database | Engine | Type | Scale-to-Zero |
|---|---|---|---|
| Neon | PostgreSQL | Relational | ✅ |
| Turso | libSQL (SQLite fork) | Relational | ✅ |
| PlanetScale | MySQL (Vitess) | Relational | ✅ |
| Supabase | PostgreSQL | Relational | ❌ (always-on) |
| Cloudflare D1 | SQLite | Relational | ✅ |
| Upstash | Redis | Key-Value | ✅ |
Quick Verdict
- Neon — Best serverless Postgres. Best for general web apps.
- Turso — Best for edge/embedded. Lowest latency.
- PlanetScale — Best for MySQL teams. Best branching workflow.
- Supabase — Best all-in-one (auth + storage + realtime). Not truly serverless.
- D1 — Best for Cloudflare Workers. Cheapest.
- Upstash — Best for caching, sessions, queues. Not a primary database.
Pricing Comparison
| Free Tier | Paid Starts At | Storage Cost | |
|---|---|---|---|
| Neon | 512MB storage, auto-suspend | $19/mo (Launch) | $0.75/GiB |
| Turso | 9GB storage, 500 databases | $29/mo (Scaler) | $0.25/GiB |
| PlanetScale | Removed free tier (2024) | $39/mo (Scaler) | $1.50/GiB |
| Supabase | 500MB, 2 projects | $25/mo (Pro) | $0.125/GiB |
| D1 | 5GB storage, 5M reads/day | $5/mo (Workers Paid) | $0.75/GiB |
| Upstash | 256MB, 10K commands/day | $10/mo (Pay-as-you-go) | Per-command |
Cheapest for small projects: D1 (basically free on Cloudflare Workers plan) Best free tier: Turso (9GB is very generous) Most predictable pricing: Supabase (flat monthly fee)
Performance
Cold Start
Serverless databases have cold starts when scaling from zero:
| Database | Cold Start | Warm Query |
|---|---|---|
| Neon | ~500ms-1s | ~5-20ms |
| Turso | ~50ms | ~1-5ms |
| D1 | ~10ms | ~1-5ms |
| PlanetScale | ~100ms | ~5-15ms |
| Upstash | ~5ms | ~1-3ms |
Turso and D1 win because SQLite/libSQL is embedded — no connection overhead. Neon's cold start is the most noticeable.
Connection Model
- Neon: HTTP (serverless-friendly) or WebSocket (persistent). HTTP driver for Vercel Edge.
- Turso: HTTP or libSQL protocol. Embedded replicas for zero-latency reads.
- PlanetScale: HTTP driver (@planetscale/database) or MySQL protocol.
- D1: Workers binding (no network hop within Cloudflare).
- Upstash: HTTP-based Redis commands. Works everywhere.
Key Differentiators
Neon: Branching
Create database branches like git branches. Each branch is a full copy (copy-on-write, so it's instant). Test migrations on a branch, merge when ready. Integrates with Vercel preview deployments.
Turso: Edge Replicas
Deploy read replicas to 30+ edge locations. Data lives close to users. Embedded replicas (libSQL file) give you zero-latency reads in your application.
PlanetScale: Schema Changes
Online DDL — change your schema without locking tables or downtime. Deploy requests for schema changes with review and rollback. Best for teams that need safe migrations.
Supabase: Full Backend
Not just a database — includes auth, storage, real-time, edge functions. If you need a complete backend, Supabase is the one to pick.
D1: Cloudflare Integration
Native integration with Workers, KV, R2, and Queues. If you're in the Cloudflare ecosystem, D1 is the natural choice. No network hop between your Worker and database.
Upstash: Serverless Redis
Not a relational database — use for caching, sessions, rate limiting, queues, and pub/sub. Pairs well with any primary database.
ORM Support
| ORM | Neon | Turso | PlanetScale | Supabase | D1 |
|---|---|---|---|---|---|
| Drizzle | ✅ | ✅ | ✅ | ✅ | ✅ |
| Prisma | ✅ | ✅ | ✅ | ✅ | ✅ (preview) |
| Kysely | ✅ | ✅ | ✅ | ✅ | ✅ |
All major ORMs support all databases. Drizzle has the best serverless support across the board.
When to Use Each
Choose Neon When
- You want PostgreSQL (most popular choice)
- You need database branching for preview deployments
- Building with Vercel + Next.js
- You want a familiar Postgres experience that scales to zero
Choose Turso When
- Latency is critical (edge replicas)
- You're building multi-tenant apps (one database per tenant)
- Mobile/embedded apps (libSQL embeds in your app)
- Budget is tight (generous free tier)
Choose PlanetScale When
- Your team uses MySQL
- You need safe, zero-downtime schema migrations
- Large datasets that need horizontal scaling (Vitess)
- Enterprise compliance requirements
Choose Supabase When
- You need more than a database (auth, storage, realtime)
- Building a full-stack app quickly
- You want an open-source Firebase alternative
- Row-level security and PostgREST API
Choose D1 When
- You're already on Cloudflare Workers
- Building lightweight apps and APIs
- Cost is the primary concern
- You don't need advanced PostgreSQL features
Choose Upstash When
- You need caching or session storage
- Building rate limiters or queues
- Need pub/sub messaging
- Complement to a primary database
Migration Paths
| From | To | Difficulty |
|---|---|---|
| Neon | Supabase | Easy (both Postgres) |
| Turso | Neon | Medium (SQLite → Postgres) |
| PlanetScale | Neon | Medium (MySQL → Postgres) |
| D1 | Turso | Easy (both SQLite-based) |
Moving between Postgres databases (Neon ↔ Supabase) is straightforward. Switching database engines (MySQL ↔ Postgres ↔ SQLite) requires schema and query changes.
FAQ
Do I need a serverless database?
If you're on Vercel, Cloudflare Workers, or any serverless platform — yes. Traditional databases don't handle connection pooling well with serverless functions.
Can I use a regular Postgres with serverless?
Yes, but you need a connection pooler (PgBouncer, Supavisor). Neon handles this automatically.
Which is best for a hobby project?
D1 (cheapest) or Turso (most generous free tier). Both are excellent for small projects.
Which is best for a SaaS product?
Neon or Supabase. Both scale well and have good developer experience. Choose Neon for pure database, Supabase for full backend.
Is PlanetScale still worth it without a free tier?
If you need MySQL and safe schema changes, yes. For new projects, most developers choose Postgres (Neon or Supabase) instead.
Bottom Line
Neon is the default choice for serverless Postgres in 2026. Great DX, branching, and Vercel integration. Turso is best for edge performance and multi-tenant apps. D1 is cheapest for Cloudflare users. Supabase is best when you need a complete backend.
For most web apps: start with Neon + Drizzle ORM. Add Upstash for caching. You'll cover 95% of use cases.