DynamoDB最佳實踐



某些實踐可以最佳化程式碼,防止錯誤,並在使用各種來源和元素時最大限度地降低吞吐量成本。

以下是DynamoDB中一些最重要和最常用的最佳實踐。

表的分佈意味著最佳方法是將讀/寫活動均勻地分佈在所有表項上。

目標是在表項上實現統一的資料訪問。最佳吞吐量利用率取決於主鍵的選擇和項工作負載模式。均勻地分配分割槽鍵值的負載。避免少量高使用率的分割槽鍵值。選擇更好的方案,例如大量不同的分割槽鍵值。

瞭解分割槽行為。估計DynamoDB自動分配的分割槽。

DynamoDB提供突發吞吐量使用,它為“突發”功率保留未使用的吞吐量。避免大量使用此選項,因為突發會迅速消耗大量吞吐量;此外,它並不能證明是一種可靠的資源。

在上傳時,分佈資料以獲得更好的效能。透過同時上傳到所有分配的伺服器來實現這一點。

快取常用項,以將讀取活動從資料庫轉移到快取。

節流、效能、大小和訪問成本仍然是項的最大問題。選擇一對多表。刪除屬性並劃分表以匹配訪問模式。透過這種簡單的方法,您可以顯著提高效率。

在儲存大型值之前對其進行壓縮。使用標準壓縮工具。對大型屬性值(如S3)使用替代儲存。您可以在S3中儲存物件,並在項中儲存識別符號。

透過虛擬項片段將大型屬性分佈到多個項中。這為項大小的限制提供了一種解決方法。

查詢和掃描

查詢和掃描主要面臨吞吐量消耗挑戰。避免突發,這通常是由於諸如切換到強一致性讀取等原因造成的。以低資源的方式使用並行掃描(即,沒有節流的後臺函式)。此外,僅對大型表以及您沒有充分利用吞吐量或掃描操作效能較差的情況使用它們。

區域性二級索引

索引在吞吐量和儲存成本以及查詢效率方面存在問題。除非您經常查詢屬性,否則避免索引。在投影中,明智地選擇,因為它們會膨脹索引。僅選擇那些經常使用的。

使用稀疏索引,這意味著排序鍵不會出現在所有表項中的索引。它們有利於查詢大多數表項中不存在的屬性。

注意項集合(所有表項及其索引)的擴充套件。新增/更新操作會導致表和索引都增長,集合的限制為10GB。

全域性二級索引

索引在吞吐量和儲存成本以及查詢效率方面存在問題。選擇金鑰屬性擴充套件,這與表中的讀/寫擴充套件一樣,提供了工作負載均勻性。選擇均勻分佈資料的屬性。此外,使用稀疏索引。

利用全域性二級索引在請求少量資料的查詢中進行快速搜尋。

廣告
© . All rights reserved.