DynamoDB 是鍵值儲存嗎?

是——DynamoDB 是鍵值儲存,同時也是文件儲存。每個項目都透過它的主索引鍵(一個分割區索引鍵,可選再加一個排序索引鍵)取回,從而實現快速的基於鍵的查詢。它還額外支援文件型別——巢狀的列表和對映——所以它既是鍵值資料庫,也是文件資料庫。

鍵值模型

每個項目都有一個唯一標識它的主索引鍵。對那個鍵執行 GetItem 是一次直接的、個位數毫秒的查詢——不做掃描。這就是經典的鍵值訪問模式。

文件的那一面

除了鍵之外,值可以是豐富的文件:對映(物件)和列表(陣列),可巢狀至 32 層深,並受 400 KB 項目上限約束。這讓 DynamoDB 成為一個值為類 JSON 文件的鍵值儲存。

文件的那一半止步於何處

32 層的上限是真實存在的(第 33 層會被直接拒絕,準確的錯誤在這裡),但真正咬人的很少是深度,而是定址方式。

你是按鍵讀取的,不是按欄位。ProjectionExpression 收窄的是穿過網路的內容,而不是 DynamoDB 讀取的內容。在一個約 30 KB、裝著一段很長的 bio 和一個 100 元素 tags 列表的項目上,一次強一致的 GetItem 三種寫法的賬單完全一樣:

請求返回內容ConsumedCapacity
GetItem,整個項目全部內容8
ProjectionExpression: 'status'一個 6 位元組的值8
ProjectionExpression: 'profile.tags[0]'列表裡的一個元素8

這就是你把文件存進鍵值儲存所接受的取捨:訪問和計費的單位都是整個項目。如果某一個屬性被頻繁讀取而它的鄰居又很大,它們就該放進不同的項目裡。

鍵為什麼這麼重要

因為讀取是按鍵進行的,一次高效的查詢必須先釘住單個分割區索引鍵值。設計好鍵正是 DynamoDB 建模的核心。

深入瞭解

DynamoDB 複合主索引鍵DynamoDB 分割區索引鍵的工作原理裡理解鍵。下載 DynoTable 來按鍵查詢。

item size calculator 按照 DynamoDB 的方式對屬性名稱和值進行總計。

在DynoTable:複合分割區索引鍵,例如USER#123在網格中解碼,這樣您就可以一目瞭然地讀取實體字首,行快速檢視(Space)可以開啟完整文件而不會丟失您的位置。參見Querying tables

深入了解

最後核實於 2026-07-13,依據上方連結的 AWS 官方文件。

這些容量數字於 2026-07-28 針對 DynamoDB Local 3.3.0(amazon/dynamodb-local:latest)透過 @aws-sdk/client-dynamodb 3.1095.0 實測得出,不是估算。

深入了解

根據上面連結的官方AWS文件上次驗證時間為 2026 年 7 月 13 日。

容量資料是在 2026 年 7 月 28 日透過 @aws-sdk/client-dynamodb 3.1095.0 根據 DynamoDB 本地 3.3.0 (amazon/dynamodb-local:latest) 進行測量的,未進行估計。

不必透過主控台就能操作 DynamoDB

一款快速的 DynamoDB 桌面用戶端,可執行 DynamoDB 無法執行的真正 SQL — JOINs、GROUP BY、聚合 — 並支援視覺化編輯與使用你自己的 Bedrock 金鑰的 AI 代理。

30 天免費試用,無需信用卡 — 之後為無時間限制的免費方案。