node.js - 减少 MongoDB 延迟
问题描述
我的 NodeJS 服务器曾经使用版本“mongodb”中的旧语法连接到我的远程 MongoDB 实例:“^2.2.33”。但是,在我更新了新版本 3.1.3 的语法后,数据获取似乎明显变慢了。连接的身份验证/检索客户端似乎比以前花费了更长的时间。有没有人遇到过这个问题?对此有什么建议吗?
以下 MONGODB_HOST 变量的格式为:[username:password@IP_address]
之前(对于版本 2.2.33):
mongoClient.connect(`mongodb://${process.env.MONGODB_HOST}:27017/test`, function(err, db){
console.log("Mongo client connected");
db.collection('data')
.find({ ... })
.sort({ time: 1 })
.toArray(function(err, items){
console.log(items);
db.close();
}
});
之后(版本 3.1.3):
mongoClient.connect(`mongodb://${process.env.MONGODB_HOST}:27017/test`, { useNewUrlParser: true }, function (err, client) {
if(err) console.log(err);
const db = client.db('data');
db.collection(collection)
.find(query) // query parameters in JSON object
.sort({ time: 1 })
.toArray(function (err, items) {
console.log(items);
client.close();
});
});
编辑: 在使用 console.time 测量延迟几次后,结果发现实际上两个版本都同样慢。例如,连接时间约为 2700 毫秒,而从远程 MongoDB 服务器(包括连接和身份验证)仅获取约 1 小时的数据(约 2593 条记录)需要约 6800 毫秒。我仍在积极寻找如何减少这种延迟的方法,无论是在 MongoDB 上,还是愿意更换为(低成本)低延迟 NoSQL DB,谢谢!
解决方案
推荐阅读
- python-3.x - 如何使用python将一些文本复制并放置在文件中的特定位置?
- powershell - 递归设置 ReadOnly ACL
- c# - 为什么我在将 av_hwframe_transfer_data () 作为 Windows 服务运行时会捕获“AccessViolationException”异常?
- vim - 在普通 vim 模式和 NERDTree 中为不同操作映射相同的键
- python - 我的简单 python 游戏无法运行请指出我的错误
- c# - 如何检测数据流中的模式?
- python - 为了分析时间序列数据,我应该如何在 Python 中对趋势和季节性进行线性回归?
- python - 将 x 轴更改为一年中的连续一周 (WK52,WK01...)
- firebase - 错误:索引 0 处的元素不是有效的 DocumentReference
- c# - 面板的替代品 - 更轻松地查看所有面板