【mongodb】有索引但是查询时间特别长

1.mongodb的某个集合有索引但是查询时间长 

 

查看执行计划

                                     "winningPlan" : {
                                                "stage" : "SHARDING_FILTER",
                                                "inputStage" : {
                                                        "stage" : "FETCH",
                                                        "inputStage" : {
                                                                "stage" : "IXSCAN",
                                                                "keyPattern" : {
                                                                        "device_id" : 1,
                                                                        "send_time" : -1
                                                                },
                                                                "indexName" : "device_id_1_send_time_-1",
                                                                "isMultiKey" : false,
                                                                "multiKeyPaths" : {
                                                                        "device_id" : [ ],
                                                                        "send_time" : [ ]
                                                                },
                                                                "isUnique" : false,
                                                                "isSparse" : false,
                                                                "isPartial" : false,
                                                                "indexVersion" : 2,
                                                                "direction" : "forward",
                                                                "indexBounds" : {
                                                                        "device_id" : [
                                                                                "[\"190550xxxxxxx2613470\", \"190550xxxxxxx2613470\"]"
                                                                        ],
                                                                        "send_time" : [
                                                                                "[new Date(1743465599000), new Date(1743206400000)]"
                                                                        ]
                                                                }
                                                        }
                                                }
                                        },


 "executionStats" : {
                "nReturned" : 2,
                "executionTimeMillis" : 6175,
                "totalKeysExamined" : 4681974,
                "totalDocsExamined" : 2,
                "executionStages" : {
                        "stage" : "SHARD_MERGE_SORT",
                        "nReturned" : 2,
                        "executionTimeMillis" : 6175,
                        "totalKeysExamined" : 4681974,
                        "totalDocsExamined" : 2,
                        "totalChildMillis" : NumberLong(8463),
                        "shards" : [
                                {
                                        "shardName" : "rsshd2",
                                        "executionSuccess" : true,
                                        "nReturned" : 0,
                                        "executionTimeMillis" : 348,
                                        "totalKeysExamined" : 167618,
                                        "totalDocsExamined" : 0,
                                        "executionStages" : {
                                                "stage" : "SHARDING_FILTER",
                                                "nReturned" : 0,
                                                "executionTimeMillisEstimate" : 0,
                                                "works" : 2,
                                                "advanced" : 0,
                                                "needTime" : 0,
                                                "needYield" : 0,
                                                "saveState" : 0,
                                                "restoreState" : 0,
                                                "isEOF" : 1,
                                                "chunkSkips" : 0,

截取执行计划中部分内容,发现,走了索引,但是扫描的记录太多。468W行。另外发现该集合有分片键 belong_id, 查询中没有使用分片键。由此可见,这里的性能差,原因是查询未使用分片键。

2.优化方案

创建携带分片的键的索引,并说明分片键。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值