| « PreviousNext » | |
![]() ![]() ![]() | Did this page help you? Yes | No | Tell us about it... |
Following is a table that describes current limits within Amazon DynamoDB (or no limit, in some cases, for your information).
Note
Each limit listed below applies on a per-region basis.
| Table name; local secondary index name | For table and local secondary index names, allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot). Names can be between 3 and 255 characters long. |
| Table size | No practical limit in number of bytes or items. |
| Tables per account | By default, the number of tables per account is limited to 256 per region. However, you can request an increase in this limit. For more information, go to Amazon DynamoDB Limit Increase Form. |
| Hash or hash-and-range primary key: Number of hash key values | No practical limit. |
| Hash-and-range primary key: Number of range keys per hash value | No practical limit for non-indexed tables. For a table with local secondary indexes, there is a limit on item collection sizes: For every distinct hash key value, the total sizes of all table and index items cannot exceed 10 GB. Depending on your item sizes, this may constrain the number of range keys per hash value. For more information, see Item Collection Size Limit. |
| Provisioned throughput capacity unit sizes | One read capacity unit = one strongly consistent read per second, or two
eventually consistent reads per second, for items up 4 KB in
size.
One write capacity unit = one write per second, for items up to 1 KB in size. |
| Provisioned throughput minimum per table | 1 read capacity unit and 1 write capacity unit. |
| Provisioned throughput limits | DynamoDB is designed to scale without limits. However, there are some initial limits in place on provisioned throughput: US East (Northern Virginia) Region:
All Other Regions:
You can request an increase on any of these limits. For more information, go to the Amazon DynamoDB Limit Increase Form. |
| UpdateTable: Limits when increasing provisioned throughput | You can call UpdateTable as often as necessary to increase provisioned
throughput. You can increase ReadCapacityUnits or WriteCapacityUnits for a
table, subject to these conditions:
|
| UpdateTable: Limits when decreasing provisioned throughput | You can reduce the provisioned throughput on a table no more than
four times in a single UTC calendar day. These reductions can
be any of the following operations:
|
Maximum concurrent Control Plane API requests (includes cumulative number
of tables in the CREATING,
UPDATING or DELETING
state) | In general, you can have up to 10 of these requests running concurrently. The only exception is when you are
|
| Maximum number of local secondary indexes per table | You can define up to 5 local secondary indexes per table. |
| Maximum number of projected attributes per table (local secondary indexes only) | You can project a total of up to 20 attributes into all of a table's local secondary indexes. This only applies to user-specified projected attributes. In a
ProjectionType of
KEYS_ONLY or ALL. |
| Attribute name lengths | The following attribute names are length-restricted:
For any of the attribute names listed above, the name must be between 1 and 255 characters long, inclusive. The name can be any UTF-8 encodable character, but the total size of the UTF-8 string after encoding cannot exceed 255 bytes. |
| Item size | Cannot exceed 64 KB which includes both attribute name binary length (UTF-8 length) and attribute value lengths (again binary length). The attribute name counts towards the size limit. For example, consider an item with two attributes: one attribute named "shirt-color" with value "R" and another attribute named "shirt-size" with value "M". The total size of that item is 23 bytes. These limits apply to items stored in tables, and also to items in local secondary indexes. |
| Attribute values | Attribute values cannot be null or empty. |
| Attribute name-value pairs per item | The cumulative size of attributes per item must be under 64 KB. |
| Hash primary key attribute value | 2048 bytes |
| Range primary key attribute value | 1024 bytes |
| String | All strings must conform to the UTF-8 encoding. Since UTF-8 is a variable width encoding, string sizes are determined using the UTF-8 bytes. |
| Number | A number can have up to 38 digits precision and can be between 10^-128 to 10^+126. |
| Maximum number of values in an attribute set | No practical limit on the quantity of values, as long as the item containing the values fits within the 64 KB item limit. |
| BatchGetItem item maximum per operation | Up to 100 items retrieved, with the request size not exceeding 1 MB. |
| BatchWriteItem item maximum per operation | Up to 25 items put or delete operations, with the request size not exceeding 1 MB. |
| Query | Result set limited to 1 MB per API call. You can use the
LastEvaluatedKey from the query response to retrieve more
results. |
| Scan | Scanned data set size maximum is 1 MB per API call. You can use the
LastEvaluatedKey from the scan response to retrieve more
results. |