mongodb - 在 MongoDB 中存储最近使用的项目的设计方法
问题描述
我有多个解决方案的设计问题,我想看看是否有人可以就量化权衡哪种方法更好提供见解。
问题:我在 MongoDB 中有一个项目列表,介于 10 到 100,000 之间(合理)。我希望能够按从最近使用到最近最少使用的顺序展示我最近使用的前 100 项物品。
解决方案 1:我为每个 MongoDB 项目添加一个时间戳。当我使用该项目时,我会更新该项目的时间戳。为了生成我最近使用的前 100 个项目,我查询 MongoDB,按上次使用的时间戳对项目进行排序,然后呈现前 100 个排序的项目。我的想法是,此解决方案对当前实现的更改最少,但如果它查询和排序例如 100,000 个项目(特别是如果多个用户正在执行此查询),则可能会很慢。
解决方案 2:我创建了一个新的 MongoDB 集合,仅将前 100 个项目存储在一个数组中。每次使用一个项目时,我都会在数组中添加一个元素,如果数组大于 100 个项目,我会弹出最后一个项目。我的想法是,这个解决方案似乎更快,因为查询只返回最近集合中的所有内容。
在性能方面(对于用户),哪种方法更好?还是有更好的替代方法?
解决方案
推荐阅读
- python - Sympy,分段求和,简化
- javascript - 尝试使用 useEffect 挂钩来实现此功能
- android - 如何在 Android 9 或 10 中启用 Wifi Tethering
- javascript - 在加载到服务器期间将 .mp3 文件转换为 юogg 的最佳方法是什么?
- twitter-bootstrap - rtl 方向不适用于使用引导程序
- html - CSS 页眉和页脚,可滚动内容
- javascript - 隐藏元素 Selenium IDE
- php - Laravel 中的文件上传与验证给出问题并失败并出现白屏且没有错误
- java - 如何使过滤器链线程本地化?
- android - ListView如何正确刷新?