gpt4 book ai didi

javascript - 使用 Sails.js 进行慢速 MongoDB 查询

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:17 24 4
gpt4 key购买 nike

我使用 Sails.js 和 mongoDb(sails-mongo) 编写了一个应用程序。

首先,我决定将所有内容写入一个文档......数据库在 5GB 数据上速度变慢。“慢”意味着基本查找查询在 30-50 秒内执行。

比我重写多个集合中的所有内容并添加索引..我的模型示例:

Markets.js

  module.exports = {
attributes: {
name: {
type: 'string',
index: true
},
pairs: {
collection: 'Exchanges',
via: 'source',
}
}
};

和 Exchanges.js

module.exports = {

attributes: {
s1: {
type: "string"
},
source:{
model: "Maklers",
index: true
},
s2: {
type: "string"
},
p: {
type: 'float'
},
v1: {
type: 'float'
},
v2: {
type: 'float'
},
vb: {
type: 'float'
}
}
};

以及慢速查询的示例

Markets.findOne({
name: info,
sort: 'createdAt DESC',
limit: 1,
createdAt: {
'<=': aft
}
}).populateAll().exec(function(err, items) {
callback(err, items);
});

db.stats结果

> db.stats()
{
"db" : "stats222",
"collections" : 8,
"objects" : 36620661,
"avgObjSize" : 238.26556139988844,
"dataSize" : 8725442352,
"storageSize" : 10033258480,
"numExtents" : 63,
"indexes" : 13,
"indexSize" : 2940024192,
"fileSize" : 14958985216,
"nsSizeMB" : 16,
"extentFreeList" : {
"num" : 0,
"totalSize" : 0
},
"dataFileVersion" : {
"major" : 4,
"minor" : 22
},
"ok" : 1
}

你能给我什么建议吗?每分钟大约有 2000 条记录..

如何提高绩效?更改数据库配置?改变索引?更改数据库?更改模型/集合配置?

我使用具有 2GB 虚拟内存的 2 核服务器..抱歉英语不好..

最佳答案

0.12版本的Waterline在使用mongodb时有一个缺点。默认情况下,水线不区分大小写,而 mongodb 是!

您的查询速度很慢,因为在搜索字符串时,正在使用正则表达式来查找任何情况,因此您的索引毫无用处。但您可以通过使用 wlnex 属性禁用区分大小写来更改它:

someMongodbServer: {
adapter: 'sails-mongo',
host: 'mongodb',
port: 27017,
user: 'username',
password: 'password',
database: 'databaseCoolName',
wlNext: {
caseSensitive: true
}
},

您可以通过检查 mongodb 日志来确认此错误。看看什么是慢查询。

关于javascript - 使用 Sails.js 进行慢速 MongoDB 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37421228/

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