

# 在 DynamoDB 中使用全局二级索引创建最终一致副本
<a name="bp-indexes-gsi-replica"></a>

可以使用全局二级索引创建表的最终一致副本。创建副本可以实现以下用途：
+ **为不同读取器设置不同预调配读取容量。**例如，假设有两个应用程序：一个应用程序处理高优先级查询，需要最高读取性能，另一个应用程序处理低优先级查询，可以容忍读取操作节流。

  如果这两个应用程序从同一个表读取，则低优先级应用程序的大量读取负载可能占用表的所有可用读取容量。这将限制高优先级应用程序的读取操作。

  可以通过全局二级索引创建副本，设置与表不同的读取容量。然后让低优先级应用程序查询副本而不是表。
+ **完全不从表读取。**例如，一个应用程序从网站捕获大量点击流操作，不希望出现读取干扰的风险。可以隔离此表，阻止其他应用程序读取（请参阅 [使用 IAM 策略条件进行精细访问控制](specifying-conditions.md)），同时允许其他应用程序读取用全局二级索引创建的副本。

要创建复本，设置与父表具有相同键架构的全局二级索引，投影部分或全部非键属性。在应用程序中，可以将部分或全部读取操作定向到此全局二级索引，而不是父表。然后可以调整全局二级索引的预置读取容量处理这些读取，无需更改父表的预置读取容量。

写入父表与索引显示写入数据之间始终存在较短的传输延迟。换句话说，应用程序应考虑到全局二级索引副本只与父表具有*最终一致性*。

可以创建多个全局二级索引副本，支持不同读取模式。创建副本时，仅投影每个读取模式实际需要的属性。然后应用程序可以消耗较少的预置读取容量，仅获取所需的数据，而不必从父表读取项目。这种优化可以随着时间的推移大幅节约成本。