DynamoDB FAQ — Answers to Common Questions
The DynamoDB questions developers ask most — each with a clear, honest answer and where to go next.
DynamoDB characteristics & capabilities
Is DynamoDB a key-value store?
Yes, and a document store at the same time. Every item is addressed by its primary key, while attributes nest as maps and lists up to 32 levels deep.
Is DynamoDB a relational database?
No. DynamoDB is a NoSQL key-value and document database with no fixed schemas, foreign keys, or joins. You denormalize around access patterns instead.
Is DynamoDB ACID compliant?
Yes — DynamoDB supports ACID transactions via TransactWriteItems and TransactGetItems, grouping up to 100 actions into one all-or-nothing operation per Region.
Is DynamoDB encrypted?
Yes — all DynamoDB data is encrypted at rest by default with AWS KMS keys, and encryption cannot be turned off. Data in transit is protected with HTTPS/TLS.
Is DynamoDB eventually consistent?
By default yes — DynamoDB reads are eventually consistent. You can opt into strongly consistent reads on tables and LSIs; GSIs are always eventually consistent.
Is DynamoDB free?
Partly — DynamoDB has an always-free tier: 25 GB storage plus 25 write and 25 read capacity units per month. Usage beyond that is billed per request and per GB.
Is DynamoDB in-memory?
No — DynamoDB persists every write to durable storage across three Availability Zones. DAX adds an optional in-memory cache with microsecond reads.
Is DynamoDB a NoSQL database?
Yes. DynamoDB is a fully managed NoSQL key-value and document store. It holds schemaless items, scales horizontally, and its PartiQL parser rejects JOIN.
Is DynamoDB open source?
No — DynamoDB is a proprietary, fully managed AWS service. DynamoDB Local is a free emulator for development, but the production engine cannot be self-hosted.
Is DynamoDB schemaless?
Yes — DynamoDB is schemaless. Only the primary key is defined at table creation; every other attribute is optional and can vary freely from item to item.
Is DynamoDB serverless?
Yes — DynamoDB is a fully managed, serverless NoSQL database. There are no servers to provision or patch; capacity scales automatically and you pay per use.
What DynamoDB can store
Can DynamoDB have null values?
Yes — DynamoDB has a dedicated NULL type, and allows empty strings and empty lists/maps for non-key attributes. Empty sets, however, are rejected.
Can DynamoDB store arrays?
Yes. DynamoDB stores arrays as the List (L) type, ordered and mixed-type, nested up to 32 levels. About 11,070 UUID strings fit one 400 KB item.
Can DynamoDB store blobs?
Yes, within limits — DynamoDB stores binary large objects in Binary attributes (base64-encoded) under 400 KB. For larger blobs, AWS recommends Amazon S3.
Can DynamoDB store images?
Yes, but only small ones — DynamoDB stores images as base64 Binary attributes under the 400 KB item limit. AWS recommends Amazon S3 for larger images.
Can DynamoDB store JSON?
Yes — DynamoDB stores JSON using its document types: map (M) for objects and list (L) for arrays, nested up to 32 levels deep, within the 400 KB per-item limit.
How much data can DynamoDB store?
A DynamoDB table has no size limit and scales horizontally. The real caps are 400 KB per item and, only with an LSI, 10 GB per item collection.
What is the max item size in DynamoDB?
400 KB, or exactly 409,600 bytes, counting attribute names as well as values. The DynamoDB item size limit cannot be raised, so larger objects go to S3.
DynamoDB integrations & access
Can DynamoDB export to S3?
Yes — the built-in export to S3 writes full or incremental table snapshots as DynamoDB JSON or Amazon Ion. It requires PITR and consumes no read capacity.
Can Power BI connect to DynamoDB?
Power BI has no native DynamoDB connector. Bridge through Amazon Athena's ODBC connector or a driver like CData, and price what each refresh scans.
Can you use DynamoDB outside AWS?
Yes — DynamoDB is reachable from anywhere over HTTPS. Any app with AWS credentials can call the regional endpoint from a laptop, a server, or another cloud.
Does DynamoDB have triggers?
Yes. DynamoDB triggers combine Streams with Lambda, which polls the stream four times a second and runs on every item change. No CREATE TRIGGER statement.
Does DynamoDB support GraphQL?
Yes, through AWS AppSync — a managed GraphQL service that uses DynamoDB tables as data sources, with resolvers mapping GraphQL operations to DynamoDB calls.
DynamoDB operations & querying
Can DynamoDB auto scale?
Yes. DynamoDB auto scaling tracks a 20-90% target utilization on provisioned capacity, but below 28.9% average use on-demand mode costs less.
Can you run DynamoDB locally?
Yes — DynamoDB Local is a free downloadable version of DynamoDB that runs on your machine via Docker, a Java archive, or Maven, exposing the same API offline.
Does DynamoDB have backups?
Yes — on-demand backups for long-term snapshots and point-in-time recovery (PITR) for continuous backups restorable to any second in the last 35 days.
Does DynamoDB support full-text search?
No, not natively — DynamoDB has no relevance ranking, stemming, or fuzzy matching. The zero-ETL OpenSearch integration is the AWS-native answer.
Does DynamoDB support geospatial queries?
Not natively — DynamoDB has no geo data type or distance operators. Geospatial lookups are modeled with geohash/S2 cell keys queried by range.
Does DynamoDB support joins?
No. DynamoDB has no JOIN and PartiQL rejects a two-table SELECT outright, so you denormalize. The DynoTable SQL Workbench runs real joins client-side.
Does DynamoDB support SQL?
Partly. PartiQL covers SELECT, INSERT, UPDATE, and DELETE, but rejects JOIN, GROUP BY, and COUNT. The DynoTable SQL Workbench runs those over your tables.
Does DynamoDB support transactions?
Yes. DynamoDB transactions group up to 100 actions across tables into one all-or-nothing operation, at twice the capacity units of a normal write.
Does DynamoDB support TTL?
Yes — DynamoDB supports Time to Live. Set a Number attribute holding a Unix epoch expiry in seconds and DynamoDB deletes expired items automatically at no cost.
How fast is DynamoDB?
Fast — DynamoDB delivers consistent single-digit-millisecond latency at any scale. DAX, an in-memory cache, cuts eventually consistent reads to microseconds.
How many tables can you have in DynamoDB?
2,500 DynamoDB tables per Region by default, raisable to 10,000 on request. Tables have no size limit, but each provisioned one costs $0.57 a month idle.
How do you count items in DynamoDB?
Use Select: COUNT on a Query or Scan, then paginate with LastEvaluatedKey and sum Count. Counting costs the same read capacity as returning the items.
DynamoDB architecture & internals
Can DynamoDB be used as a cache?
Yes — DynamoDB's fast key lookups and TTL make it a durable cache. For microsecond reads, front it with DAX, a managed in-memory write-through cache.
Does DynamoDB support foreign keys?
No. DynamoDB has no foreign keys, referential integrity, or cascading deletes. Delete a parent and the children stay. You model the relationships yourself.
Does DynamoDB support secondary indexes?
Yes. DynamoDB has Global Secondary Indexes (own keys, eventually consistent, 20 per table by default) and Local Secondary Indexes (strongly consistent).
Is DynamoDB multi-region?
A standard DynamoDB table is single-Region. Global tables replicate multi-active across Regions, up to 99.999% availability, and bill storage in each one.
When should you not use DynamoDB?
Skip DynamoDB for analytical workloads, unknown access patterns, heavy ad-hoc querying, and normalized relational schemas that depend on joins.
More DynamoDB resources
Learn DynamoDB
A structured DynamoDB curriculum, from the fundamentals through to the internals.
Common DynamoDB Errors
Every common DynamoDB error with its cause and the exact fix.
DynamoDB Code Examples
Copy-paste snippets for every operation — SDK v3, boto3, and the AWS CLI.
Engineering Blog
How DynoTable is built — the stories behind the AI agent and the MCP server.
DynamoDB Tools
Expression builder, pricing and capacity calculators — right in your browser.
Work with DynamoDB without the Console
A fast DynamoDB desktop client that runs the real SQL DynamoDB can’t — JOINs, GROUP BY, aggregates — with visual editing and an AI agent on your own Bedrock keys.
Free 30-day trial, no credit card — then the Free plan with no time limit.