Mongo 更新超级慢
Mongo Updates being super slow
我们的 mongo 更新遇到超时问题。我们的馆藏目前包含大约 30 万份文件。当我们尝试通过 UI 更新记录时,服务器超时并且 UI 陷入困境。
Lead.updateOne({
_id: body.CandidateID
}, {
$set: {
ingestionStatus: 'SUBMITTED',
program: body.program,
participant: body.participant,
promotion: body.promotion,
addressMeta: body.addressMeta,
CreatedByID: body.CreatedByID,
entryPerson: body.entryPerson,
lastEnteredOn: body.lastEnteredOn,
zipcode: body.zipcode,
state: body.state,
readableAddress: body.readableAddress,
promotionId: body.promotionId,
programId: body.programId,
phone1: body.phone1,
personId: body.personId,
lastName: body.lastName,
hasSignature: body.hasSignature,
firstName: body.firstName,
city: body.city,
email: body.email,
addressVerified: body.addressVerified,
address: body.address,
accountId: body.accountId
}
这就是我们更新单条记录的方式。我们在堆栈中使用 mlab 和 Heroku。正在寻找有关如何显着加快速度的建议。
谢谢。
如果您的索引没问题,那么您可以尝试 rebuilding indexes 在此集合上。
从 mango 命令行收集索引:
例如,从 mongo 命令行重建潜在客户集合索引:
db.lead.reIndex();
参考:
https://docs.mongodb.com/v3.2/tutorial/manage-indexes/
https://docs.mongodb.com/manual/reference/command/repairDatabase/
如果你不用这个,试试这个
索引构建可以阻止对数据库的写入操作,因此您不希望在高峰使用期间在大表的前台构建索引。创建索引时指定background: true即可使用后台创建索引。
db.collection.createIndex({ a:1 }, { 背景: true })
这最终将需要更长的时间才能完成,但它不会阻止操作并且对性能的影响较小。
1) Shard Lead collection by id 作为分片键。
2)检查mongodb由于索引占用的内存是否小于mongoDb服务器的内存。
您是否尝试过 建议的方法?即,在不关注写入的情况下更新?
我们的 mongo 更新遇到超时问题。我们的馆藏目前包含大约 30 万份文件。当我们尝试通过 UI 更新记录时,服务器超时并且 UI 陷入困境。
Lead.updateOne({
_id: body.CandidateID
}, {
$set: {
ingestionStatus: 'SUBMITTED',
program: body.program,
participant: body.participant,
promotion: body.promotion,
addressMeta: body.addressMeta,
CreatedByID: body.CreatedByID,
entryPerson: body.entryPerson,
lastEnteredOn: body.lastEnteredOn,
zipcode: body.zipcode,
state: body.state,
readableAddress: body.readableAddress,
promotionId: body.promotionId,
programId: body.programId,
phone1: body.phone1,
personId: body.personId,
lastName: body.lastName,
hasSignature: body.hasSignature,
firstName: body.firstName,
city: body.city,
email: body.email,
addressVerified: body.addressVerified,
address: body.address,
accountId: body.accountId
}
这就是我们更新单条记录的方式。我们在堆栈中使用 mlab 和 Heroku。正在寻找有关如何显着加快速度的建议。
谢谢。
如果您的索引没问题,那么您可以尝试 rebuilding indexes 在此集合上。 从 mango 命令行收集索引: 例如,从 mongo 命令行重建潜在客户集合索引:
db.lead.reIndex();
参考:
https://docs.mongodb.com/v3.2/tutorial/manage-indexes/ https://docs.mongodb.com/manual/reference/command/repairDatabase/
如果你不用这个,试试这个 索引构建可以阻止对数据库的写入操作,因此您不希望在高峰使用期间在大表的前台构建索引。创建索引时指定background: true即可使用后台创建索引。
db.collection.createIndex({ a:1 }, { 背景: true })
这最终将需要更长的时间才能完成,但它不会阻止操作并且对性能的影响较小。
1) Shard Lead collection by id 作为分片键。 2)检查mongodb由于索引占用的内存是否小于mongoDb服务器的内存。
您是否尝试过