mar*_*rkz 5 performance mongodb query-performance
我在 MongoDB 中有一个包含 8 亿多条记录的集合。我想做一些清理,但删除操作真的(无法使用)很慢——即使删除 1000 条记录也可能需要 10 多分钟。
集合中一个记录的结构是这样的:
{
'stID' : '00000001',
'recordID' : '28-4',
'date' : ISODate('2017-06-06 20:00:00'),
......
}
Run Code Online (Sandbox Code Playgroud)
有一个复合索引{'stID' : 1, 'recordID' : 1, 'date' : 1}
,我的删除查询是这样的:db.coll.remove({ 'stID' : '00000001', 'recordID' : '28-4' }, { multi: true });
数据库是replicaSet的一部分,有一个次要和一个仲裁者,我知道删除操作必须用要删除的每条记录的_id填充oplog,但我仍然很难理解为什么会这样慢,尤其是因为:
我们从未遇到过查找或写入/更新操作的问题。您能否建议我应该使用哪些其他参数/命令/工具来查看查询和服务器的情况。
我们使用的存储引擎是 WiredTiger。该服务器具有 128GB 的 RAM 和采用 RAID 1 配置的快速 SSD 驱动器。
小智 1
我通过使用以下方法提高了性能bulkWrite
:
db.ig_posts.bulkWrite([
{ deleteMany: { "filter": { /* your query here */ } }
]);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2722 次 |
最近记录: |