You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS DynamoDB索引创建咨询:LSI与GSI选型建议

应该选用LSI还是GSI?

首先明确核心判断逻辑:如果你的主表分区键是OrderId,优先选LSI;如果主表分区键不是OrderId,只能选GSI。

为什么优先选LSI(当主表分区键为OrderId时)

  • 匹配业务场景:LSI必须与主表共享分区键(这里即OrderId),你可以把FromDate和ToDate组合成一个复合排序键(比如拼接成2024-01-01#2024-01-31这类字符串),这样就能通过OrderId + 组合日期键精准定位行数据,完全满足“用前三个字段定位并upsert HistoricalData”的需求。
  • 实时性与一致性保障:LSI的读写与主表原子同步,upsert主表数据时,LSI会立即更新,不存在GSI那种异步复制的延迟,确保操作后能立刻读取到最新的HistoricalData;同时LSI支持强一致性读取,对需要精准数据的场景更可靠。
  • 性能与成本优势:LSI和主表数据存储在同一分区,查询性能更好,且无需额外异步复制开销,成本比GSI更低。

什么时候需要选GSI

如果你的主表分区键不是OrderId(比如用了其他字段作为分区键),那LSI就无法使用(LSI强制要求与主表分区键一致),这时只能选择GSI:

  • 将GSI的分区键设为OrderId,排序键设为FromDate+ToDate的组合,也能实现基于这三个字段的检索。
  • 但要注意:GSI是异步复制数据的,upsert主表后,GSI中的数据可能存在延迟,默认是最终一致性读取,强一致性读取会有额外的性能和成本开销。

内容的提问来源于stack exchange,提问作者Gagan H M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 13:53:10