DynamoDB - 最佳实践

在使用各种源和元素时,某些做法会优化代码,防止错误并最大限度地降低吞吐量成本.

以下是DynamoDB中一些最重要和最常用的最佳做法.

表的分布意味着最佳方法在所有表项中均匀地传播读/写活动.

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

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

DynamoDB提供突发吞吐量使用,为"突发"电源保留未使用的吞吐量.避免大量使用此选项,因为突发会快速消耗大量吞吐量;此外,它并不是一个可靠的资源.

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

缓存经常使用的项目以将读取活动卸载到缓存而不是数据库.

项目

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

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

通过虚拟项目片段在多个项目之间分配大型属性.这为项目大小的限制提供了一种解决方法.

查询和扫描

查询和扫描主要受吞吐量消耗挑战的影响.避免突发,这通常是由切换到强一致性读取之类的事情引起的.以低资源方式使用并行扫描(即没有限制的后台功能).此外,只使用大表,并且没有充分利用吞吐量或扫描操作的情况会导致性能不佳.

本地二级指数

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

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

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

全局二级索引

索引存在问题吞吐量和存储成本的区域,以及查询的效率.选择关键属性传播,如表中的读/写传播,提供工作负载均匀性.选择均匀分布数据的属性.此外,利用稀疏索引.

利用全局二级索引来快速搜索请求适量数据的查询.