我的 DynamoDB 表中有一个属性,它将采用二进制值success和failure。
如果我必须从此表中获取/查询成功或失败记录,我可以对此属性进行 GSI 索引吗?
还是我应该为成功和失败场景制作两个不同的表格?
如果不应该对二进制属性进行索引,
二进制属性的 GSI 索引有什么问题?
它将如何影响查询操作的性能?
我的 DynamoDB 表中有一个属性,它将采用二进制值success和failure。
如果我必须从此表中获取/查询成功或失败记录,我可以对此属性进行 GSI 索引吗?
还是我应该为成功和失败场景制作两个不同的表格?
如果不应该对二进制属性进行索引,
二进制属性的 GSI 索引有什么问题?
它将如何影响查询操作的性能?
听起来您的意思可能是布尔值(真/假)而不是二进制。您不能在 DynamoDB 中的布尔属性上创建 GSI,但可以在字符串、数字或二进制属性(与布尔值不同)上创建 GSI,因此您可以考虑将 1 / 0 或“接受”/“失败”作为逻辑布尔值。
如果您只想查询索引的一侧,则可以考虑将其设为稀疏索引。因此,如果您只想查询是否存在真值(或“接受”或 1 或任何真值),那么当它不为真时,删除该属性而不是将其设置为“失败”或 0 等。这使得查询更多由于索引更小,性能更高,但限制是您不能再查询“失败”/false/0 的情况。
要回答您的问题:
1)您不能在布尔值上创建索引,使用字符串或数字(或二进制,但可能您需要字符串或数字) 2)如果您只需要查询布尔值的一侧(例如“接受”但从不“失败”),您可以通过创建稀疏索引来提高性能