DynamoDB 的 CRUD 操作與 Query vs Scan

在 AWS 中使用資料儲存服務

Dunieski Otano

AWS Solutions Architect

昂貴的錯誤

  • 開發者用 Scan 找單一使用者
  • 讀完整個含 1,000,000 筆項目的資料表
  • 帳單:查一次要 $500
  • 用 Query 只要 $0.01

mistake

在 AWS 中使用資料儲存服務

DynamoDB 的 CRUD 操作

  • PutItem:建立或取代項目
  • GetItem:以主鍵讀取項目
  • UpdateItem:修改特定屬性
  • DeleteItem:移除項目
  • Query:依分割鍵擷取項目(高效)
  • Scan:讀整張表(成本高)

ops

在 AWS 中使用資料儲存服務

Query vs Scan:關鍵差異

  • Query:需有分割鍵,只讀特定項目
    • 快速、省資源、低成本
  • Scan:讀完整表,再事後篩選
    • 緩慢、昂貴,能免則免
  • 原則:知道鍵就用 Query;否則,重想你的設計。

scan

在 AWS 中使用資料儲存服務

用條件運算式防止競爭狀況

  • 問題:兩位使用者同時更新同一項目
  • 解法:條件運算式
  • 範例:僅在現值符合預期時才更新

race

在 AWS 中使用資料儲存服務

UpdateItem 運算式:修改屬性

  • SET:設定屬性值或新增屬性
  • ADD:數值加減、加入集合
  • REMOVE:從項目刪除屬性
  • DELETE:從集合移除元素

expressions

在 AWS 中使用資料儲存服務

Query 與 Scan 的分頁

  • 問題:結果超過 1MB 上限
  • 解法:用 LastEvaluatedKey 做分頁
  • Limit:控制每頁項目數
  • 直到 LastEvaluatedKey 為 null 才結束

pagination

在 AWS 中使用資料儲存服務

一起來練習吧!

在 AWS 中使用資料儲存服務

Preparing Video For Download...