Amazon web services Dynamodb-如何选择合适的GSI和LSI

Amazon web services Dynamodb-如何选择合适的GSI和LSI,amazon-web-services,nosql,amazon-dynamodb,Amazon Web Services,Nosql,Amazon Dynamodb,我的表格“横幅”中有5列。 目前,id是分区键和主键。 将来,我可能想做一些事情,比如获取isActive=1的所有横幅并按顺序排序。 据我所知,GSI是分区键的另一个选项,LSI类似于表中分区键不变的第二个排序键 isActive应该是GSI,order应该是LSI吗?关于LSI,这里是我的经验法则:只有当您 在二级索引中需要强大的读取一致性 要保存次索引的已设置RCU和WCU吗 否则,请毫不犹豫地使用GSI。类似主题和。你看到那些了吗?在这种场合也很有用。但我仍然不确定isActive是否应

我的表格“横幅”中有5列。

目前,id是分区键和主键。

将来,我可能想做一些事情,比如获取isActive=1的所有横幅并按顺序排序。

据我所知,GSI是分区键的另一个选项,LSI类似于表中分区键不变的第二个排序键


isActive应该是GSI,order应该是LSI吗?

关于LSI,这里是我的经验法则:只有当您

  • 在二级索引中需要强大的读取一致性
  • 要保存次索引的已设置RCU和WCU吗

  • 否则,请毫不犹豫地使用GSI。

    类似主题和。你看到那些了吗?在这种场合也很有用。但我仍然不确定isActive是否应该是GSI,顺序是否应该是LSI。为什么LSI比GSI保存更多的二级索引的配置RCU和WCU?我知道GSI会导致创建另一个具有不同分区键的表。所以LSI不会做同样的事情?同样,在我上面的用例中。您认为isActive/order应该设置为什么?@CCCC,因为LSI共享主表的RCU和WCU。一般来说,我会推荐GSI。所以你的意思是isActive应该是分区键,order应该是排序键,就像GSI一样?
    id(string) | createdAt(Date) | caption(string) | isActive(binary) | order(Int)