DynamoDB is excellent at the questions you designed it for. Postgres wins when the questions change: ad-hoc reports, joins, aggregates, filters on any column, and access patterns discovered after launch. Our benchmark: an unplanned query at 5 million orders took 1.2 s in Postgres and 50 ms after a 2-second index build; in DynamoDB it was a full Scan or a new index backfilled across every item.
No index for it
With a partial index
Time to build the index
An unplanned question (large refunds in the last 30 days) in Postgres, before and after adding a partial index. Postgres 17, Apple M4, medians. Our benchmark, November 2026.
Very high, spiky request rates on known keys, where it scales without anyone resizing anything.
Idle and small workloads: no instance to pay for when nothing happens. The free tier is 25 GB and 25 read and write units.
Very large tables with key-based access, where latency stays flat at billions of items.
Session state, carts, device state, idempotency keys, rate limits: one item per key, read and written by key.
We move teams from DynamoDB to Postgres, or redesign the DynamoDB model, depending on which one the data actually wants. Free first call.
Once a month: what changed in tech that month and what it means for you, from cloud and AI to security and the tools you build with. Every item links to its source. No sales pitch, unsubscribe in one click.
Book a free 30-minute call about it. Bring your setup and your bill; you'll leave knowing what we'd do first and roughly what it costs, whether or not you hire us.
Or keep reading
DynamoDB vs Postgres, Measured: One Orders Dataset, Seven Questions, Three Sizes
We loaded the same orders into Postgres 17 and DynamoDB and asked seven questions at 100,000, 1 million and 5 million orders. Lookups by key stayed under 2 ms in Postgres at every size and cost half a read unit in DynamoDB. Every question across customers needed a full Scan in DynamoDB (about 40,000 read units per million orders), and took 0.02 to 1.6 seconds in Postgres. The numbers, and what they mean for choosing.
Read
DynamoDB vs Postgres, Measured in AWS: 53 Workloads From the Same Client
We ran 53 workloads against RDS Postgres 17 and DynamoDB from one Fargate task in the same Availability Zone, at 100,000, 1 million and 5 million orders. Key lookups took 0.35 ms in Postgres and 2.7 ms in DynamoDB; a two-item transaction 1.75 ms against 20 ms; a question nobody designed for, 0.08–2.7 s against a full table scan. The full results, with the method and every caveat.
Read
As of November 4, 2026. Provided as is, for general information, and accurate to the best of our knowledge on the date shown. Not legal, compliance, tax, financial or other professional advice. Prices, limits and vendor services change; check current vendor documentation before relying on anything here. Terms of use.