我想为dynamodb表创建一个全局索引。表中的大多数记录对于全局索引的hashKey都具有“未定义”值。dynamodb如何用“未定义”的hashKey对这些记录进行分区?我只使用未定义的hashKey值查询全局索引。我想知道这些‘未定义’hashKey记录是否会损害查询性能。
发布于 2015-12-29 00:12:19
如果您所说的未定义意味着它们的实际字符串值为“未定义”,则它们将出现在索引中,这可能会通过创建热碎片而损害性能。
但是,如果未定义这些属性意味着这些属性没有任何与它们相关联的值,那么这将最终创建所谓的稀疏索引。拥有稀疏索引意味着这些项将根本不在GSI中,这将有利于性能,因为向缺少这些属性的对象写入将不需要写入GSI。
稀疏索引是DynamoDB的一个强大特性,因为它提供了访问项的另一种方式。例如,有一个稀疏索引意味着它可以拥有更少的记录,这使得GSI扫描对于某些用例是可行的。
https://stackoverflow.com/questions/34502303
复制相似问题