gpt4 book ai didi

javascript - 哈希和范围主键的性能 : Dynamodb

转载 作者:太空宇宙 更新时间:2023-11-04 00:52:29 25 4
gpt4 key购买 nike

我正在使用 Node.js 和环回构建一个应用程序。该应用程序的一个组件将登录尝试存储到 DynamoDB 中。我对这个数据库非常陌生,并且遇到了问题。

目前,我的哈希键是电子邮件,范围键是尝试登录时的 unix 时间戳。本质上,我需要从数据库获取所有数据,以生成最后登录尝试的列表。首先想到的是使用扫描,但是它不允许根据上次登录尝试对列表进行排序。使用查询的问题是,我必须访问所有电子邮件,而不仅仅是特定于一封特定电子邮件的项目。我认为我可以使所有哈希值相同,但这会根据 dynamoDB 存储数据的方式产生性能问题。

有其他人遇到过此类问题并有解决方案吗?

最佳答案

像 Amazon DynamoDB 这样的 NoSQL 数据库通过特定主键(“哈希”)存储和检索数据效果最佳。还可以通过主键加上附加值(“哈希和范围”)来识别数据。

但是,您想要了解“上次登录”的要求并不适合 NoSQL 数据库,因为扫描数据非常消耗 CPU 和 IO 资源。

另一种方法应该是为每个用户创建一个项目(记录),并在用户上次登录时间的该项目上存储属性(与“列”类似的概念)。这样,您只需检索一条特定记录即可发现上次登录时间。

如果您还希望保留登录尝试的完整历史记录,可以在单独的表上完成此操作,其中包含哈希值和范围以及每次登录尝试一个项目。这与上表不同,上表中每个用户只有一个项目。

关于javascript - 哈希和范围主键的性能 : Dynamodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31756480/

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