📜  DynamoDB-最佳实践

📅  最后修改于: 2020-11-28 14:09:55             🧑  作者: Mango


在使用各种源和元素时,某些做法可以优化代码,防止错误并使生产成本最小化。

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

桌子

表的分布意味着最好的方法将读/写活动平均分配给所有表项。

旨在对表项进行统一的数据访问。最佳吞吐量使用取决于主键选择和项目工作负载模式。在分区键值之间平均分配工作负载。避免使用少量的频繁使用的分区键值。选择更好的选择,例如大量不同的分区键值。

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

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

在上载时,分发数据以获得更好的性能。通过同时上载到所有分配的服务器来实现此目的。

缓存常用项目可将读取活动卸载到缓存而不是数据库。

物品

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

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

通过虚拟物品碎片将大型属性分布在多个物品上。这提供了解决项目大小限制的方法。

查询和扫描

查询和扫描主要受到吞吐量消耗的挑战。避免突发,突发通常是由切换到高度一致的读取等操作引起的。以低资源的方式使用并行扫描(即无限制的后台函数)。此外,仅将它们与大表一起使用,而您未充分利用吞吐量或扫描操作的情况会降低性能。

本地二级指数

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

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

注意项目集合(所有表项目及其索引)的扩展。添加/更新操作会导致表和索引都增加,并且10GB的存储空间仍然是限制。

全球二级指数

索引提出了吞吐量和存储成本以及查询效率方面的问题。选择关键属性扩展,就像表中的读/写扩展一样,可以提供工作负载的一致性。选择均匀分布数据的属性。另外,利用稀疏索引。

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