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.
Most DynamoDB-versus-Postgres comparisons are opinions. This one is measurements: the same orders data in both, the same client, the same network, 53 workloads from key lookups to transactions, hot keys, throughput and ad-hoc reports.
Postgres
DynamoDB
Median latency for everyday operations at 5 million orders, measured from the same client (log scale). Our measurements, November 2026.
The full report covers all 53 workloads at three sizes: strongly consistent reads, batches, pagination, conditional writes, hot keys, throughput from 1 to 128 concurrent clients, 16 analytics questions, schema changes, 40 KB items and cold connections, with what each costs in DynamoDB request units.
We'll go through your access patterns with these numbers in hand. 30 minutes, free.
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
Ad-Hoc Questions on DynamoDB vs Postgres: 16 Analytics Queries at 100,000, 1 Million and 5 Million Orders
Every question across customers is a full table scan in DynamoDB: 217,000 read units at 5 million orders, whether it returns 10 rows or all of them. Postgres answered the same 16 questions in 0.08 to 2.7 seconds without a single index added for them, and an index built in 2.7 seconds took one from 148 ms to 44 ms. Measured in AWS.
Read
Concurrent Transactions, Measured: Deadlocks, Lock Order and Conflicts in Postgres and DynamoDB
Moving money between 10 accounts with 64 concurrent workers, Postgres committed 5 transfers a second when rows were locked in random order (50 deadlocks, median wait 24 s) and 1,185 a second when locked in a fixed order. DynamoDB committed 228 a second and cancelled 14,344. Also: hot counters, sharding, and serializable isolation.
Read
As of November 9, 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.