# AWS - DynamoDB Scan VS Query
# Query
定義
- 使用 Partition Key 進行精確查找
- [Optional] 使用 Sort Key 進行範圍查找
- 高效的資料檢索方式
# 工作原理
- 直接定位到特定的 Partition
- 僅讀取該 Partition 的資料
- [Optional] 可選用 Sort Key
- 回傳匹配結果
# Scan
定義
- 檢查表中的每一個項目
- 全表掃描
- [Optional] 可用 Filter 條件
# 工作原理
- 遍歷整個表
- 讀取所有項目
- [Optional] 應用 Filter
- 回傳匹配結果
# 詳細比較
# 效能差異
| 特性 | Query | Scan |
|---|---|---|
| 速度 | 快 | 慢 |
| 讀取數據量 | 僅相關項目 | 整個表 |
| RCU 消耗 | 低 | 高 |
| 延遲 | ms 級 | s/m 級 |
| 可預測性 | 高 | 低 |
# 使用差異
Query 要求
- 指定 Parition Key
- [Optional] Sort Key
支持 </=/>/<=/>=/BETWEEN/BEGINS_WITH 操作
Scan 要求
- 無必須條件
- 可以沒有任何條件
- [Optional] 添加 Filter 條件
- 掃描整張表
- 過濾在讀取後的應用
- 仍消耗完整的 RCU
# Reference
- Tutorials Dojo - DynamoDB Scan vs Query