0

我的 DynamoDB 表中有一个属性,它将采用二进制值successfailure

如果我必须从此表中获取/查询成功或失败记录,我可以对此属性进行 GSI 索引吗?

还是我应该为成功和失败场景制作两个不同的表格?

如果不应该对二进制属性进行索引,

  1. 二进制属性的 GSI 索引有什么问题?

  2. 它将如何影响查询操作的性能?

4

1 回答 1

1

听起来您的意思可能是布尔值(真/假)而不是二进制。您不能在 DynamoDB 中的布尔属性上创建 GSI,但可以在字符串、数字或二进制属性(与布尔值不同)上创建 GSI,因此您可以考虑将 1 / 0 或“接受”/“失败”作为逻辑布尔值。

如果您只想查询索引的一侧,则可以考虑将其设为稀疏索引。因此,如果您只想查询是否存在真值(或“接受”或 1 或任何真值),那么当它不为真时,删除该属性而不是将其设置为“失败”或 0 等。这使得查询更多由于索引更小,性能更高,但限制是您不能再查询“失败”/false/0 的情况。

要回答您的问题:

1)您不能在布尔值上创建索引,使用字符串或数字(或二进制,但可能您需要字符串或数字) 2)如果您只需要查询布尔值的一侧(例如“接受”但从不“失败”),您可以通过创建稀疏索引来提高性能

于 2020-06-18T10:39:53.807 回答