我一直在阅读关于使用GSI的最佳方式的问题,而DynamoDB : Global Secondary Index utilisation in queries接近我需要的问题,但我仍然有一些问题。
我有一个场景,我的产品表包含字段:
product_id (partitions_key), product_name, launch_year, manufacturer
我需要进行以下三种类型的查询:
1. product_name=?
2. product_name=? AND launch_year=?
3. product_name=? AND manufacturer=?
根据我的理解,基于product_name创建一个GSI将服务于所有3个目的。 我想了解的是,将使用launch_year和制造商增加2个GSI作为排序键,加快查询2和3的速度? sort键的唯一目的是返回已排序的数据,还是Dynamodb查询会以某种方式利用感兴趣的字段排序的事实?
答案 0 :(得分:0)
无需再创建两个索引。原因是: -
FilterExpressions
按launch_year
和manufacturer
product_name
和launch_year
的GSI。所以你有2个用例。对于第三个用例,您可以使用FilterExpression
product_name