- 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 - 条件
- 网络身份联合
- DynamoDB - 数据管道
- DynamoDB - 数据备份
- DynamoDB - 监控
- DynamoDB - CloudTrail
- DynamoDB-MapReduce
- DynamoDB - 表活动
- DynamoDB - 错误处理
- DynamoDB - 最佳实践
- DynamoDB 有用资源
- DynamoDB - 快速指南
- DynamoDB - 有用的资源
- DynamoDB - 讨论
DynamoDB - 最佳实践
在使用各种源和元素时,某些实践可以优化代码、防止错误并最大限度地降低吞吐量成本。
以下是 DynamoDB 中一些最重要和最常用的最佳实践。
表格
表的分布意味着最好的方法是将读/写活动均匀地分布在所有表项上。
目标是对表项进行统一的数据访问。最佳吞吐量使用取决于主键选择和项目工作负载模式。将工作负载均匀分布在分区键值之间。避免诸如少量频繁使用的分区键值之类的事情。选择更好的选择,例如大量不同的分区键值。
了解分区Behave。估计 DynamoDB 自动分配的分区。
DynamoDB 提供突发吞吐量使用,为“突发”功率保留未使用的吞吐量。避免大量使用此选项,因为突发会快速消耗大量吞吐量;此外,事实证明它并不是可靠的资源。
在上传时,分发数据以获得更好的性能。通过同时上传到所有分配的服务器来实现此目的。
缓存经常使用的项目,将读取活动卸载到缓存而不是数据库。
项目
限制、性能、大小和访问成本仍然是项目的最大问题。选择一对多表。删除属性并划分表以匹配访问模式。通过这种简单的方法,您可以显着提高效率。
在存储大值之前对其进行压缩。使用标准压缩工具。对大型属性值使用备用存储,例如 S3。您可以将对象存储在 S3 中,并将标识符存储在项目中。
通过虚拟物品碎片将大属性分布到多个物品上。这为项目大小的限制提供了一种解决方法。
查询和扫描
查询和扫描主要面临吞吐量消耗的挑战。避免突发,这通常是由于切换到强一致性读取等原因造成的。以低资源方式使用并行扫描(即无节流的后台功能)。此外,仅将它们用于大型表,并且未充分利用吞吐量或扫描操作的情况会导致性能较差。
本地二级指数
索引在吞吐量和存储成本以及查询效率方面存在问题。除非您经常查询属性,否则请避免建立索引。在预测中,请明智地选择,因为它们会使索引膨胀。仅选择那些频繁使用的。
使用稀疏索引,即排序键不会出现在所有表项中的索引。它们有利于对大多数表项中不存在的属性进行查询。
注意项目集合(所有表项目及其索引)扩展。添加/更新操作会导致表和索引增长,并且 10GB 仍然是集合的限制。
全球二级指数
索引在吞吐量和存储成本以及查询效率方面存在问题。选择关键属性分散,就像表中的读/写分散一样,提供工作负载一致性。选择均匀分布数据的属性。另外,利用稀疏索引。
利用全局二级索引在请求适量数据的查询中进行快速搜索。