Qual è la dimensione massima di un Item in DynamoDB?

400 KB. La dimensione massima di un Item in DynamoDB è 400 KB. Quel totale conta sia i nomi degli attributi (lunghezza in byte UTF-8) sia tutti i valori degli attributi (lunghezza binaria), incluse list e map annidate. I valori binari sono misurati per lunghezza in byte grezzi. Non c'è modo di alzare questo limite — gli oggetti più grandi appartengono ad Amazon S3.

Cosa conta verso i 400 KB

La dimensione dell'item è la somma di:

  • ogni nome di attributo, misurato in byte UTF-8, e
  • ogni valore di attributo, misurato in lunghezza binaria (le stringhe come UTF-8, i numeri in forma compatta, il binario come byte grezzi).

Anche la struttura di map e list annidate aggiunge un piccolo overhead per elemento. I nomi lunghi degli attributi costano spazio vero — accorciali per guadagnare margine.

400 KB sono 409.600 byte, e il nome ne fa parte

AWS misura in unità binarie: "DynamoDB denotes 1 KB = 1024 bytes." Quindi il tetto è 409.600 byte, non 400.000. Puoi trovare il bordo esatto con una ricerca binaria su PutItem con un solo attributo di tipo stringa:

await client.send(
  new PutItemCommand({
    TableName: 'sizes',
    Item: {pk: {S: 'A'}, a: {S: 'x'.repeat(n)}}
  })
);

Il più grande n che riesce è 409.596. Aggiungi il nome della chiave (pk, 2 byte), il valore della chiave (A, 1 byte) e il nome dell'attributo (a, 1 byte) e arrivi esattamente a 409.600. Un byte in più ti dà:

ValidationException: Item size has exceeded the maximum allowed size
HTTP 400

Ora rinomina quell'attributo da a a attributeName e non cambiare nient'altro. Il valore più grande che ci sta scende a 409.584, esattamente 12 byte in meno, e 12 byte è la lunghezza aggiuntiva del nome.

La raccomandazione di AWS discende da quell'aritmetica. "We recommend that you choose shorter attribute names rather than long ones."

Ed è anche il motivo per cui un budget di 400 KB è più stretto di quanto sembri su un item con molti attributi. Ogni nome si paga a ogni scrittura, e a ogni lettura, per tutta la vita dell'item.

Perché conta

La dimensione dell'item guida il costo in capacità: ogni lettura è fatturata a scatti di 4 KB e ogni scrittura a scatti di 1 KB (vedi unità di capacità). Un item più grande costa di più per operazione oltre a rischiare il limite rigido.

Quando lo raggiungi

Dividi i dati su più Item, oppure sposta i blob grandi su Amazon S3 e memorizza un riferimento in DynamoDB.

Approfondisci

Misura qualsiasi item con il calcolatore della dimensione degli Item e leggi la guida sul limite di dimensione dell'item. Scarica DynoTable per vedere le dimensioni degli Item mentre li modifichi.

Riferimenti

Ultima verifica 2026-07-13 rispetto alla documentazione ufficiale AWS collegata sopra. Il vincolo dei 400 KB è stato ricontrollato il 2026-07-28: ora vive in Constraints.html, non nella pagina delle quote.

Misurato il 2026-07-28 contro DynamoDB Local 3.3.0 tramite @aws-sdk/client-dynamodb 3.1095.0 su Node v24.18.0. Le cifre in byte vengono da una ricerca binaria su PutItem; la ValidationException è output del motore riportato alla lettera.

Lavora con DynamoDB senza la Console

Un client desktop veloce per DynamoDB che esegue il vero SQL che DynamoDB non può — JOINs, GROUP BY, aggregazioni — con modifica visuale e un agente AI sulle tue chiavi Bedrock.

Prova gratuita di 30 giorni, senza carta di credito — poi il piano Free senza limiti di tempo.