如何解决为什么 mongodump 执行 COLLSCAN?
我正在尝试执行 monogdump
操作以导出数据库、所有记录。也没有传递给 mongodump 命令的查询参数。
MongoDB 版本为 4.4.3
我仍然看到它正在从 mongo 日志执行 COLLSCAN。
{
"t": {
"$date": "2021-02-09T17:29:37.421+00:00"
},"s": "I","c": "COMMAND","id": 51803,"ctx": "conn529","msg": "Slow query","attr": {
"type": "command","ns": "notifications.event","appName": "mongodump","command": {
"getMore": 4159295894400030341,"collection": "event","lsid": {
"id": {
"$uuid": "fd3284b9-86e8-4c8a-a3b4-a1787308a4ec"
}
},"$clusterTime": {
"clusterTime": {
"$timestamp": {
"t": 1612891775,"i": 52
}
},"signature": {
"hash": {
"$binary": {
"base64": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=","subType": "0"
}
},"keyId": 0
}
},"$db": "notifications","$readPreference": {
"mode": "primaryPreferred"
}
},"originatingCommand": {
"find": "event","filter": {
},"$clusterTime": {
"clusterTime": {
"$timestamp": {
"t": 1612891718,"i": 4
}
},"planSummary": "COLLSCAN","cursorid": 4159295894400030341,"keysexamined": 0,"docsexamined": 72989,"numYields": 93,"nreturned": 72989,"reslen": 16777333,"locks": {
"ReplicationStateTransition": {
"acquireCount": {
"w": 94
}
},"Global": {
"acquireCount": {
"r": 94
}
},"Database": {
"acquireCount": {
"r": 94
}
},"Collection": {
"acquireCount": {
"r": 94
}
},"Mutex": {
"acquireCount": {
"r": 1
}
}
},"storage": {
"data": {
"bytesRead": 17559327,"timeReadingMicros": 1336714
}
},"protocol": "op_msg","durationMillis": 1443
}
}
无论如何我可以避免 COLLSCAN?它会出现的任何原因?
解决方法
集合扫描是检索整个集合的最有效方式。
它并不总是坏的。仅当您需要少量文档(例如 1 个)时才不好。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。