我正在建模一个简单的应用程序,我想将DynamoDB用作我的存储。我需要存储来自电子商务网站的所有订单。可以使用order_id和用户电子邮件进行查询。
查看dynamodb文档,我认为最好的方法是使用order_id(我的大多数查询将在此索引上进行)作为我的主键(分区键)。
那么电子邮件呢?我想要一个二级索引,但我有点迷失。 什么是最好的方法?
答案 0 :(得分:0)
email
属性上的全局二级索引似乎可以解决问题:
当您需要按order_id
查找时,使用GetItem
操作并指定order_id
作为主键
当您需要按email
查找时,您使用GSI上的Query
API并指定email
作为分区键。
GSI具有独立的读取容量单位 - 因为您说您将在大多数时间使用order_id,您可以为主表提供比GSI更多的RCU。
参考: