看着this DynamoDB documentation about GSI,我发现以下评论:
全局二级索引仅跟踪其关键属性实际存在的数据项。
这到底是什么意思?
Partition Key
和/或Sort Key
将导致GSI中没有其他项目INCLUDE
选项指定为GSI一部分的任何属性缺少数据将导致GSI中没有其他项目我怀疑“关键属性”指的是1.,因此从INCLUDE
选项的角度来看任何丢失的数据将在查询GSI时简单地返回为空,但想要检查如果我的理解是正确的。
在这个领域,GSI和LSI之间没有区别吗?
答案 0 :(得分:0)
然后从您引用的下两行开始:
全局二级索引仅跟踪其关键属性实际存在的数据项。例如,假设您向GameScores表中添加了另一个新项目,但仅提供了必需的主键属性:
因为您未指定TopScore属性,所以DynamoDB不会将此项目传播到GameTitleIndex。
因此,如果您有一个GSI over属性GSIKey,并且在没有该属性的情况下向表中添加了一条记录,则GSI将不会获得该记录的条目。
如果您添加带有GSIKey的记录,则GSI将具有该记录的条目。
任何其他投影属性都将存在或不存在。与表本身相同。
技术术语是sparse index;它不必包含与基表一样多的条目。
本地二级索引也很稀疏。