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 — DynamoDB is a key-value store and also a document store. Items are retrieved by primary key, and attributes can nest as documents (maps and lists).
Is DynamoDB a relational database?
No — DynamoDB is a NoSQL key-value and document database. It has no fixed schemas, no foreign keys, and no joins; you model 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 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 a NoSQL database?
Yes — DynamoDB is a fully managed NoSQL key-value and document database that stores schemaless items and scales horizontally with single-digit-millisecond latency.
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 with the List (L) type, an ordered mixed-type collection. It also offers String, Number, and Binary Sets for unique unordered values.
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 arbitrarily, up to the 400 KB per-item limit.
How much data can DynamoDB store?
Effectively unlimited — a DynamoDB table has no maximum size and scales horizontally. Limits 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 — the maximum item size in DynamoDB counts both attribute names (UTF-8 bytes) and all values, including nested lists and maps. The limit cannot be raised.
DynamoDB integrations & access
DynamoDB operations & querying
Can DynamoDB auto scale?
Yes — DynamoDB auto scaling adjusts provisioned capacity to a target utilization via Application Auto Scaling, or on-demand mode scales instantly with no config.
Does DynamoDB support joins?
No — DynamoDB has no JOIN operation, and PartiQL does not add one. You denormalize or use single-table design so each access pattern is one query.
Does DynamoDB support SQL?
Partly — DynamoDB supports PartiQL, a SQL-compatible language for SELECT/INSERT/UPDATE/DELETE. It has no JOINs or GROUP BY, and efficient reads still need a key.
Does DynamoDB support transactions?
Yes — DynamoDB supports ACID transactions via TransactWriteItems and TransactGetItems, grouping up to 100 actions across tables into one all-or-nothing operation.
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 do you count items in DynamoDB?
Use Select: COUNT on a Query or Scan to count matching items. Each response counts only up to 1 MB scanned, so paginate and sum Count for the full total.
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 secondary indexes?
Yes — DynamoDB has Global Secondary Indexes (own key and capacity, eventually consistent) and Local Secondary Indexes (shared partition key, strongly consistent).
Is DynamoDB multi-region?
It can be — a standard table is single-Region, but global tables make DynamoDB multi-Region and multi-active with up to 99.999% availability across chosen Regions.
Travaille avec DynamoDB sans la Console
DynoTable est un client de bureau rapide pour DynamoDB — parcours les tables, exécute des requêtes de style SQL et édite les items en local.