DynamoDB最佳实践



某些实践可以优化代码,防止错误,并在使用各种来源和元素时最大限度地降低吞吐量成本。

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

表的分布意味着最佳方法是将读/写活动均匀地分布在所有表项上。

目标是在表项上实现统一的数据访问。最佳吞吐量利用率取决于主键的选择和项工作负载模式。均匀地分配分区键值的负载。避免少量高使用率的分区键值。选择更好的方案,例如大量不同的分区键值。

了解分区行为。估计DynamoDB自动分配的分区。

DynamoDB提供突发吞吐量使用,它为“突发”功率保留未使用的吞吐量。避免大量使用此选项,因为突发会迅速消耗大量吞吐量;此外,它并不能证明是一种可靠的资源。

在上传时,分布数据以获得更好的性能。通过同时上传到所有分配的服务器来实现这一点。

缓存常用项,以将读取活动从数据库转移到缓存。

节流、性能、大小和访问成本仍然是项的最大问题。选择一对多表。删除属性并划分表以匹配访问模式。通过这种简单的方法,您可以显著提高效率。

在存储大型值之前对其进行压缩。使用标准压缩工具。对大型属性值(如S3)使用替代存储。您可以在S3中存储对象,并在项中存储标识符。

通过虚拟项片段将大型属性分布到多个项中。这为项大小的限制提供了一种解决方法。

查询和扫描

查询和扫描主要面临吞吐量消耗挑战。避免突发,这通常是由于诸如切换到强一致性读取等原因造成的。以低资源的方式使用并行扫描(即,没有节流的后台函数)。此外,仅对大型表以及您没有充分利用吞吐量或扫描操作性能较差的情况使用它们。

局部二级索引

索引在吞吐量和存储成本以及查询效率方面存在问题。除非您经常查询属性,否则避免索引。在投影中,明智地选择,因为它们会膨胀索引。仅选择那些经常使用的。

使用稀疏索引,这意味着排序键不会出现在所有表项中的索引。它们有利于查询大多数表项中不存在的属性。

注意项集合(所有表项及其索引)的扩展。添加/更新操作会导致表和索引都增长,集合的限制为10GB。

全局二级索引

索引在吞吐量和存储成本以及查询效率方面存在问题。选择密钥属性扩展,这与表中的读/写扩展一样,提供了工作负载均匀性。选择均匀分布数据的属性。此外,使用稀疏索引。

利用全局二级索引在请求少量数据的查询中进行快速搜索。

广告