mongodb - MongoDB 5.0 原生时间序列集合上的慢查询
问题描述
我使用 MongoDB 以 1 Hz 的频率存储一些时间序列数据。为了促进这一点,我的中心文档代表每个用户每台设备一小时的数据,在文档创建时预先分配了 3600 个值。两个缺点:
- 每个插入都是一个更新。我需要查询正确的记录(按用户、按设备、按天、按小时),将最新的 IoT 读数附加到列表中,然后更新记录。
- 分页查询需要复杂的自定义代码。我需要查询与我的搜索范围匹配的所有数据的记录数,然后手动创建要返回的每一页数据。
我希望 5.0 中引入的 MongoDB Native Time-Series Collections 能给我带来一些性能改进,它确实做到了,但仅限于摄取率。我使用的比较是尽快将 108,000 条记录推送到数据库中并平均响应时间,然后执行分页查询并获得响应时间的范围。这是我观察到的:
Mongo 自定义代码解决方案:30 毫秒插入,10-20 毫秒分页查询。
Mongo Native Time-Series:138 微秒插入,50-90 毫秒分页查询。
插入率的差异是预期的,见上面的#1。但是对于分页查询,我没想到我的自定义时间序列 kluge 实现比本机实现快得多。在 Mongo 5.0 文档中,我并没有真正看到对预期优势的讨论。我应该期望看到这方面的改进吗?
解决方案
推荐阅读
- python - 共享在我的计算机上读取 .txt 文件的 Python 脚本
- reactjs - S3 前端向 EC2 显示 CORS 预检错误
- javascript - 有没有办法从可选变量中解包?
- python - 将遗留系统与 Celery 集成
- full-text-search - 两个数据库的快速全文比较
- javascript - 创建频道后找不到频道 discord.js v13
- javascript - Buddypress:还保存个人资料图片的大版本
- bash - bash 回显到文件失败并显示“没有这样的文件”
- python - Python BeautifulSoup 类查找返回无
- php - 点转移到用户错误 laravel