IBRAVRA Media Network
Comparisons • 12 min read

MongoDB vs PostgreSQL vs MySQL Database Pricing Playbook

Five vendors, three profiles, one honest bill — Atlas tiers, Neon meters, Supabase plans, PlanetScale clusters, and RDS hourly rates, priced to the dollar.

By Enow A. Jovial • Published 2026-11-07

A database that costs $40 a month on one vendor costs $350 on another at the same size, and the difference is not the engine — it is the billing model. MongoDB Atlas charges by the hour for a cluster tier, Neon by the compute-unit hour plus storage, Supabase a flat plan plus compute add-ons, PlanetScale a flat monthly cluster rate, and AWS RDS an hourly instance rate plus storage by the gigabyte. This playbook prices all five at three stated profiles, every figure traced to a vendor pricing page or the official AWS price list opened on 2026-11-07.

> [!FOUNDER]

> "The cheapest database is the one whose billing model matches how your workload actually behaves. An always-on cluster billed by the hour punishes an idle app; a usage-billed database billed by the compute hour rewards it. Price the behaviour, not the brand."

> — Enow A. Jovial, Founder & Chief Executive Officer

1. How MongoDB Atlas bills: tiers, not meters

Atlas sells clusters in named tiers, and the tier is the price. M0 gives 512 MB of storage on shared RAM and a shared vCPU, free forever, capped at 100 operations per second. M2 costs $9 a month for 2 GB and M5 $25 a month for 5 GB, both shared. Flex bills $0.011 an hour, $8 to $30 a month for typical use, 5 GB of storage. Dedicated clusters start at M10: 10 to 128 GB of storage, 2 GB of RAM, 2 vCPUs, $0.08 an hour. The ladder runs M20 at $0.20, M30 at $0.54, M40 at $1.04, M50 at $2.00, M60 at $3.95, M80 at $7.30, and M700 at $33.26 an hour for 96 vCPUs and 768 GB of RAM.

!MongoDB Atlas dedicated cluster tier pricing

The tier bundles compute and storage: pick M40 and you get 4 vCPUs, 16 GB of RAM, and 80 GB to 1 TB of storage for one hourly rate. Storage inside the tier range costs nothing extra, but one tier up for more RAM can double or triple the bill. Inbound transfer is typically free and the free and Flex tiers are not charged for outgoing data, but dedicated clusters pay egress when data leaves the cluster or crosses regions. Backup cost depends on region and snapshot and oplog storage consumed, and backup is not available on the free tier — and MongoDB publishes no per-gigabyte backup rate, so no Atlas backup dollar figure appears here.

> [!KEY TAKEAWAY]

> Atlas pricing is a staircase: you pay for the tier you sit on, not the resources you use inside it.

2. How Neon and Supabase bill PostgreSQL: meters, not tiers

Neon splits the bill into compute and storage and meters both. One compute unit, a CU, allocates approximately 4 GB of RAM with associated CPU. Launch charges $0.106 per CU-hour and $0.35 per GB-month, sizes up to 16 CU and 64 GB of RAM. Scale charges $0.222 per CU-hour at the same $0.35 per GB-month, sizes up to 56 CU and 224 GB of RAM, plus SLAs, HIPAA, and private networking. Free gives 100 CU-hours a month per project, 1 GB of storage, sizes up to 2 CU. The decisive feature is scale to zero: compute stops after five minutes idle, so a database at 0.25 CU for 12 hours a day uses roughly 90 CU-hours a month.

Supabase bills the opposite way: a flat plan plus compute add-ons. Pro costs $25 a month and includes 8 GB of disk, 250 GB of egress, 100,000 monthly active users, and daily backups kept for 7 days. Compute is an hourly add-on: Micro $10 for shared compute with 1 GB of RAM, Small $15 for 2 GB, Medium $60 for 4 GB, XL $210 for dedicated 4 vCPUs and 16 GB, 4XL $960 for 16 vCPUs and 64 GB, 12XL $2,800 for 48 vCPUs and 192 GB. Paid plans include $10 a month in compute credits, enough to cover one Micro instance. Disk beyond 8 GB costs $0.125 per GB, egress beyond 250 GB $0.09 per GB. Free gives 500 MB of database size and 5 GB of egress, and pauses after a week of inactivity.

3. How PlanetScale and AWS RDS bill MySQL: flat clusters versus hourly instances

PlanetScale prices Vitess MySQL as a flat monthly rate for a highly available three-node setup: one primary and two replicas. The x86-64 rates run PS-80 at $179 a month for 1 vCPU and 8 GiB, PS-160 at $349 for 2 vCPUs and 16 GiB, PS-320 at $699 for 4 vCPUs and 32 GiB, and PS-1280 at $2,799 for 16 vCPUs and 128 GiB. Arm64 is cheaper: PS-160 $286, PS-320 $570, PS-1280 $2,265. PlanetScale Postgres single node starts at $5 a month, Metal at $50 a month with local NVMe storage.

AWS RDS prices PostgreSQL and MySQL identically, by the hour, plus storage by the gigabyte. From the official AWS Price List API, published 2026-10-29: db.t4g.micro $0.016 an hour, db.t4g.small $0.032, db.m7g.large $0.168 for 2 vCPUs and 8 GiB, db.m7g.xlarge $0.337 for 4 vCPUs and 16 GiB, db.m7g.2xlarge $0.674 for 8 vCPUs, db.m7g.4xlarge $1.348 for 16 vCPUs and 64 GiB. Gp3 storage costs $0.115 per GB-month single-AZ and $0.23 multi-AZ; backup storage beyond the free allocation costs $0.095 per GB-month. The free tier covers 750 hours of db.t4g.micro, 20 GB of gp2 storage, and 20 GB of backup storage each month for one year. The RDS pricing web pages render figures only through client-side JavaScript, so the figures here come from the price list API instead.

> [!WARNING]

> PlanetScale totals here exclude storage, backup, and egress because PlanetScale publishes no per-gigabyte rate for them. Do not compare a $349 PlanetScale compute figure against a $246 RDS all-in figure — the PlanetScale number is incomplete by design.

4. The tier ladder at a glance

| Vendor and tier | What you get | Base monthly cost | Authority |

| --- | --- | --- | --- |

| Atlas M10 | 2 vCPUs, 2 GB RAM, 10 to 128 GB storage | $58.40 at $0.08 an hour | Atlas pricing |

| Atlas M40 | 4 vCPUs, 16 GB RAM, 80 GB to 1 TB storage | $759.20 at $1.04 an hour | Atlas pricing |

| Neon Launch | $0.106 per CU-hour, $0.35 per GB-month | Usage-based | Neon pricing |

| Supabase Pro | $25 plan, 8 GB disk, 250 GB egress | $25 plus compute add-on | Supabase pricing |

| PlanetScale PS-160 | Vitess HA, 2 vCPUs, 16 GiB, 3 nodes | $349 a month, compute only | PlanetScale catalog |

| RDS db.m7g.4xlarge | 16 vCPUs, 64 GiB, either engine | $984.04 plus storage | AWS Price List API |

5. The three profiles: same workload, five bills

Every profile assumes 730 hours a month, always on, single-AZ or the vendor default.

$

\text{Monthly cost} = (\text{Hourly rate} \times 730) + (\text{Storage GB} \times \text{Per-GB-month rate}) + \text{Plan fee}

$

$

\text{Neon monthly CU-hours} = \text{Average CU} \times \text{Hours running}, \quad \text{so 2 CU} \times 730 = 1{,}460 \text{ CU-hours}

$

Small — 10 GB, 2 vCPUs. Atlas M10: $0.08 × 730 = $58.40, storage included. Supabase Pro plus Small: $25 + $15 = $40, plus 2 GB beyond 8 GB at $0.125 = $0.25, total $40.25. Neon Launch at 2 CU: 2 × 730 × $0.106 = $154.76, plus 10 GB × $0.35 = $3.50, total $158.26 — but Neon scales to zero, so an intermittent workload pays a fraction of this. RDS either engine, db.m7g.large: $0.168 × 730 = $122.64, plus 10 GB × $0.115 = $1.15, total $123.79. PlanetScale PS-160: $349.00, storage extra.

Medium — 100 GB, 4 vCPUs. Atlas M40: $1.04 × 730 = $759.20. Supabase Pro plus XL: $25 + $210 = $235, plus 92 GB beyond 8 GB at $0.125 = $11.50, total $246.50. Neon Launch at 4 CU: 4 × 730 × $0.106 = $309.52, plus 100 GB × $0.35 = $35.00, total $344.52. RDS db.m7g.xlarge: $0.337 × 730 = $246.01, plus 100 GB × $0.115 = $11.50, total $257.51. PlanetScale PS-320: $699.00, storage extra.

Large — 1 TB, 16 vCPUs. Atlas M60: $3.95 × 730 = $2,883.50. Supabase Pro plus 4XL: $25 + $960 = $985, plus 1,016 GB beyond 8 GB at $0.125 = $127.00, total $1,112.00. Neon Launch at 16 CU: 16 × 730 × $0.106 = $1,238.08, plus 1,024 GB × $0.35 = $358.40, total $1,596.48. RDS db.m7g.4xlarge: $1.348 × 730 = $984.04, plus 1,024 GB × $0.115 = $117.76, total $1,101.80. PlanetScale PS-1280: $2,799.00, storage extra.

| Profile | Atlas | Supabase | Neon Launch | RDS either engine | PlanetScale Vitess |

| --- | --- | --- | --- | --- | --- |

| Small, 10 GB, 2 vCPU | $58.40 | $40.25 | $158.26 | $123.79 | $349.00 compute only |

| Medium, 100 GB, 4 vCPU | $759.20 | $246.50 | $344.52 | $257.51 | $699.00 compute only |

| Large, 1 TB, 16 vCPU | $2,883.50 | $1,112.00 | $1,596.48 | $1,101.80 | $2,799.00 compute only |

Atlas is cheapest at small and ruinous at large because each tier jump multiplies the whole bill. Supabase and RDS track each other closely at medium and large because both price compute and storage separately. Neon looks expensive at small only because the profile assumes 2 CU running around the clock. PlanetScale looks expensive everywhere because its number buys three nodes and excludes storage.

6. The costs the headline price hides

Four charges decide the real bill. First, egress. Supabase includes 250 GB and charges $0.09 per GB beyond it; Atlas charges egress on dedicated clusters when data leaves the cluster or crosses regions. Pulling 500 GB a month out adds $22.50 on Supabase. Second, backups. RDS charges $0.095 per GB-month beyond the free allocation; Neon charges $0.09 for scheduled backups plus $0.20 for instant-restore history; Supabase includes daily backups for 7 days on Pro; Atlas prices backup by snapshot and oplog storage with no published rate. Third, branching. Neon charges $0.002 per branch-hour, so ten preview branches running all month cost about $14.60. Fourth, multi-AZ. RDS multi-AZ doubles compute and doubles gp3 storage to $0.23 per GB-month, so the large profile on RDS multi-AZ costs roughly $2,204 a month instead of $1,101.80. Atlas and PlanetScale HA include replication in the tier price; Neon storage is multi-AZ by default.

7. Which database for which workload

| Workload | Best fit | Why the price works | Authority |

| --- | --- | --- | --- |

| Document data, flexible schema | MongoDB Atlas | M10 at $58.40 a month | Atlas pricing |

| Bursty or preview-heavy Postgres | Neon | Scale to zero | Neon pricing |

| Postgres with auth, storage, realtime | Supabase | $25 plan plus compute | Supabase pricing |

| MySQL at write scale with sharding | PlanetScale Vitess | Flat HA cluster | PlanetScale catalog |

| Regulated or existing AWS estate | AWS RDS | Same hourly rate for both engines | AWS Price List API |

| Steady 24-hour OLTP | RDS or Supabase | Metered compute beats tiers | AWS Price List API |

8. Operator boundaries: who should avoid each option

Atlas is wrong for a mostly idle workload: an M10 at $58.40 a month never sleeps, while Neon at 0.25 CU for 12 hours a day stays inside the free 100 CU-hours. Atlas is also wrong when data grows faster than compute — each storage-driven tier jump buys unneeded RAM. Neon is wrong for a workload that runs hot around the clock at large sizes: 16 CU at the Launch rate reaches $1,596.48 at the large profile, and the Scale rate of $0.222 per CU-hour would push the same profile past $2,900. Supabase is wrong when the workload outgrows the compute ladder — beyond 12XL at $2,800 a month the answer is contact sales. PlanetScale is wrong for a small app that does not need Vitess sharding: $349 a month for a three-node HA cluster is the floor, while single-node Postgres starts at $5 a month. RDS is wrong for a team that wants branching, auth, and previews handled — RDS sells a database, not a backend. See the pooling guide on PostgreSQL connection pooling with PgBouncer: Neon includes PgBouncer with up to 10,000 connections per compute; RDS pooling is your own PgBouncer to run.

9. The five-step selection and migration workflow

1. Measure the workload for two weeks before pricing anything. Record peak and average vCPUs, storage growth per week, and gigabytes transferred out. A workload averaging 0.5 CU belongs on Neon; one averaging 4 vCPUs around the clock belongs on RDS.

2. Price the same three profiles on every candidate. Use the section 5 formula with your own numbers and add egress, backup, and multi-AZ lines. If a vendor will not publish a rate, write the line as unknown.

3. Run the free tier as a real trial, not a demo. Load production-shaped data, run the actual query mix, and watch the meter: Atlas M0 caps at 100 operations per second, Neon free at 100 CU-hours, Supabase free pauses after a week idle.

4. Migrate with a replica, not a dump. Stand up the new database as a replica of the old one, replay a day of production traffic against it, and compare the bill after seven days.

5. Lock the guardrails on day one. Set a spend alert at 80 percent of budget, a scale-to-zero policy where supported, and a monthly review of the storage line.

10. Execution checklist

  • [x] Record peak and average vCPUs, storage growth, and monthly egress first
  • [x] Price all three profiles with the section 5 formula on every candidate
  • [x] Confirm whether the price includes storage, backup, egress, and replication
  • [x] Test the free tier with production-shaped data and the real query mix
  • [x] Set a spend alert at 80 percent of budget and a monthly storage review
  • [x] Verify the multi-AZ cost before signing off
  • x] Compare the object-storage bill alongside the database bill — see the [object storage pricing head-to-head
  • > [!TIP]

    > Run the trial on arm64 where the vendor offers it. PlanetScale PS-160 drops from $349 to $286 a month on arm64, and RDS Graviton instances carry the same discount against Intel.

    The right database is the one whose billing model matches the workload's shape. Flexible documents with steady traffic fit Atlas tiers; bursty Postgres with preview branches fits Neon's meter; a full backend on Postgres fits Supabase's plan-plus-compute; MySQL that must shard fits PlanetScale's flat clusters; and a steady workload inside AWS fits RDS hourly pricing. Price the behaviour first, then pick the engine — and before committing, run the totals through the tax estimator. The Supabase versus Firebase versus PlanetScale comparison covers the platform side.