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。
深入了解
- Fast NoSQL Key-Value Database — Amazon DynamoDB — AWS
- Core components of Amazon DynamoDB — Amazon DynamoDB Developer Guide
- What is Amazon DynamoDB? — Amazon DynamoDB Developer Guide
最後核實於 2026-07-13,依據上方連結的 AWS 官方文件。
這些容量數字於 2026-07-28 針對 DynamoDB Local 3.3.0(amazon/dynamodb-local:latest)透過 @aws-sdk/client-dynamodb 3.1095.0 實測得出,不是估算。
深入了解
- Fast NoSQL Key-Value Database — Amazon DynamoDB — AWS
- Core components of Amazon DynamoDB — Amazon DynamoDB Developer Guide
- What is Amazon DynamoDB? — Amazon DynamoDB Developer Guide
根據上面連結的官方AWS文件上次驗證時間為 2026 年 7 月 13 日。
容量資料是在 2026 年 7 月 28 日透過 @aws-sdk/client-dynamodb 3.1095.0 根據 DynamoDB 本地 3.3.0 (amazon/dynamodb-local:latest) 進行測量的,未進行估計。