

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 最佳实践
<a name="best-practices"></a>

除了前几节中讨论的最佳实践（例如在 Amazon S3 中存储大于 400 KB 的项目、使用索引、单表设计和事务）之外，本节还总结了建议。

## 使用对象持久化访问模式
<a name="use-obj-persistance"></a>

如本指南前面所述，Amazon DynamoDB 提供了三种访问模式。[对象持久化接口](access-patterns.md#object-persistence-interface)提供了简洁的 easy-to-maintain代码。除非在读/写操作期间必须自定义或转换模型属性值，否则我们建议您使用对象持久化接口。

## 选择正确的容量配置模式
<a name="choose-capacity-mode"></a>

当您的工作负载增加和减少时，按需容量配置会自动扩展读取和写入操作。如果您的工作负载不可预测，我们建议您使用此模式。成本通常高于预配置容量模式，并且是按比例收取的。 pay-as-you-use当您的工作负载可以预测并且可以预测容量需求时，我们建议您使用预置容量模式。有关更多信息，请参阅本指南前面的 “[定价模式](overview.md#features-pricing)” 部分。

## 使用缓存
<a name="use-caching"></a>

我们建议您在使用 DynamoDB 时使用缓存来降低与每次读/写操作相关的成本。当缓存的数据失效时，使用适当的失效逻辑从缓存中移除项目。确定实现缓存的最常用的端点。

## 使用查询代替扫描
<a name="use-queries"></a>

尽可能避免 DynamoDB 扫描。与扫描操作相比，DynamoDB 查询效率更高，成本更低。查询根据分区键 (PK) 和排序键 (SK) 值筛选项目，而扫描必须读取所有记录才能根据指定参数筛选项目。DynamoDB 的定价基于数据读/写操作量，因此扫描产生的费用比查询高。查询速度也更快，这最终会提高应用程序的性能。

## 验证数据完整性
<a name="validate-data-integrity"></a>

DynamoDB 是一个 NoSQL 数据库，因此它不维护关系数据或包含数据完整性限制。它要求每个项目只有主键和排序键的唯一组合。为确保 DynamoDB 表中相关项目之间的数据完整性，我们建议您在系统的应用程序或业务层进行严格的验证。