gpt4 book ai didi

mysql - 如何在 AWS(DynamoDB 或 SQL)中为两列数据库建立索引以提高性能

转载 作者:行者123 更新时间:2023-11-29 21:59:40 27 4
gpt4 key购买 nike

我想要一种有效的方法来存储 ItemID 和 AttributeID 以便在 DynamoDb 中查询。

有几千个唯一的 ItemID 和 300 个唯一的 AttributeID。每个ItemID通常与20-100个AttributeID相关联。每个 AttributeID 与 20,000-40,000 个 ItemID 关联随着时间的推移,将会添加更多的 AttributeID。

我希望能够查询找到:

  1. 返回与给定 ItemID 关联的 AttributeID
  2. 查找与给定 AttributeID 关联的 ItemID

我最初的解决方案是

  1. DynamoDB:拥有一张表,其中一个 ItemID 与一个 AttributeID 匹配。主键将是哈希值和愤怒值,其中哈希值 = ItemID 且范围 = AttributeID。拥有全局二级索引、Hash 和 Range,其中 Hash= AttributeID 且 Range = ItemID。

  2. 与上面相同,但使用 SQL,但这将导致大约 900 万个条目,这会降低性能,尤其是当我添加更多 AttributeID 时。

我的解决方案可以吗?或者有什么更好的方法?按照我建议的方式,SQL 和 DynamoDB 版本之间的性能是否会有任何差异(由于底层表实现)?

最佳答案

你应该有

  1. Item,索引位于ItemID
  2. Atribute,索引位于AtributeID
  3. Item Atribute,具有两个字段ItemID、AtributeID,并具有包含这两个字段的复合索引。

900万对于数据库来说根本不算什么。使用索引,您将以毫秒为单位找到每个项目的属性。

关于mysql - 如何在 AWS(DynamoDB 或 SQL)中为两列数据库建立索引以提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32774789/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com