
- DynamoDB 教程
- DynamoDB - 首頁
- DynamoDB - 概述
- DynamoDB - 基本概念
- DynamoDB - 環境
- DynamoDB - 操作工具
- DynamoDB - 資料型別
- DynamoDB - 建立表格
- DynamoDB - 載入表格
- DynamoDB - 查詢表格
- DynamoDB - 刪除表格
- DynamoDB - API 介面
- DynamoDB - 建立項
- DynamoDB - 獲取項
- DynamoDB - 更新項
- DynamoDB - 刪除項
- DynamoDB - 批次寫入
- DynamoDB - 批次檢索
- DynamoDB - 查詢
- DynamoDB - 掃描
- DynamoDB - 索引
- 全域性二級索引
- 本地二級索引
- DynamoDB - 聚合
- DynamoDB - 訪問控制
- DynamoDB - 許可權 API
- DynamoDB - 條件
- Web 身份聯合
- DynamoDB - 資料管道
- DynamoDB - 資料備份
- DynamoDB - 監控
- DynamoDB - CloudTrail
- DynamoDB - MapReduce
- DynamoDB - 表格活動
- DynamoDB - 錯誤處理
- DynamoDB - 最佳實踐
- DynamoDB 有用資源
- DynamoDB - 快速指南
- DynamoDB - 有用資源
- DynamoDB - 討論
DynamoDB - 索引
DynamoDB 使用索引來訪問主鍵屬性以提高訪問速度。它們可以加速應用程式訪問和資料檢索,並透過減少應用程式延遲來支援更好的效能。
二級索引
二級索引包含屬性子集和備用鍵。您可以透過針對索引的查詢或掃描操作來使用它。
其內容包括您要投影或複製的屬性。在建立過程中,您為索引定義一個備用鍵,以及您希望在索引中投影的任何屬性。然後,DynamoDB 將屬性的副本複製到索引中,包括來自表的源主鍵屬性。執行這些任務後,您只需像在表上執行操作一樣使用查詢/掃描。
DynamoDB 自動維護所有二級索引。在項操作(例如新增或刪除)上,它會更新目標表上的任何索引。
DynamoDB 提供兩種型別的二級索引 -
全域性二級索引 - 此索引包含一個分割槽鍵和一個排序鍵,它們可能與源表不同。它使用“全域性”標籤是因為索引上的查詢/掃描能夠跨越所有表資料和所有分割槽。
本地二級索引 - 此索引與表共享分割槽鍵,但使用不同的排序鍵。它的“本地”特性源於其所有分割槽都作用於具有相同分割槽鍵值的表分割槽。
要使用的最佳索引型別取決於應用程式的需求。請考慮下表中列出的兩者之間的差異 -
質量 | 全域性二級索引 | 本地二級索引 |
---|---|---|
鍵模式 | 它使用簡單或複合主鍵。 | 它始終使用複合主鍵。 |
鍵屬性 | 索引分割槽鍵和排序鍵可以由字串、數字或二進位制表屬性組成。 | 索引的分割槽鍵是與表分割槽鍵共享的屬性。排序鍵可以是字串、數字或二進位制表屬性。 |
每個分割槽鍵值的大小限制 | 它們沒有大小限制。 | 它對與分割槽鍵值關聯的已索引項的總大小施加 10GB 的最大限制。 |
線上索引操作 | 您可以在建立表時生成它們,將它們新增到現有表中,或刪除現有的索引。 | 您必須在建立表時建立它們,但不能刪除它們或將它們新增到現有表中。 |
查詢 | 它允許覆蓋整個表和每個分割槽的查詢。 | 它們透過查詢中提供的分割槽鍵值來處理單個分割槽。 |
一致性 | 這些索引的查詢僅提供最終一致選項。 | 這些查詢提供最終一致或強一致選項。 |
吞吐量成本 | 它包括讀取和寫入的吞吐量設定。查詢/掃描會消耗索引的容量,而不是表的容量,這也適用於表寫入更新。 | 查詢/掃描會消耗表讀取容量。表寫入會更新本地索引,並消耗表容量單元。 |
投影 | 查詢/掃描只能請求投影到索引中的屬性,不能檢索表屬性。 | 查詢/掃描可以請求未投影的那些屬性;此外,還會自動獲取它們。 |
在建立具有二級索引的多個表時,請依次進行;這意味著建立一個表並等待它達到 ACTIVE 狀態,然後再建立另一個表並再次等待。DynamoDB 不允許併發建立。
每個二級索引都需要某些規範 -
型別 - 指定本地或全域性。
名稱 - 它使用與表格相同的命名規則。
鍵模式 - 僅允許頂級字串、數字或二進位制型別,索引型別決定其他要求。
投影屬性 - DynamoDB 會自動投影它們,並允許任何資料型別。
吞吐量 - 為全域性二級索引指定讀取/寫入容量。
每個表的索引限制仍然是 5 個全域性索引和 5 個本地索引。
您可以使用DescribeTable訪問有關索引的詳細資訊。它返回名稱、大小和項數。
注意 - 這些值每 6 小時更新一次。
在用於訪問索引資料的查詢或掃描中,提供表和索引名稱、結果所需的屬性以及任何條件語句。DynamoDB 提供了以升序或降序返回結果的選項。
注意 - 刪除表也會刪除所有索引。