mongodb走了索引,对timestamp同时 gte 和 lte 时速度慢

1,数据结构如下

    "_id" : ObjectId("61c3cf02215baac3fdc00a71"),
    "ST" : "31",
    "CN" : "2011",
    "PW" : "123456",
    "MN" : "202101070000000000000002",
    "w21003-Rtd" : "0.086",
    "w21003-Flag" : "N",
    "w21011-Rtd" : "0.196",
    "w21011-Flag" : "N",
    "w01018-Rtd" : "13.00",
    "w01018-Flag" : "N",
    "timestamp" : 1640222471

2,查询语句如下

db.getCollection('xxx').
find(
{'timestamp': {"$gte": 1639670400, "$lte": 1640275199}, 'MN': "202101070000000000000002", 'CN': "2011"}).
skip(0).limit(20)

执行计划如下


{
    "queryPlanner" : {
        "plannerVersion" : 1,
        "namespace" : "xxx",
        "indexFilterSet" : false,
        "parsedQuery" : {
            "$and" : [ 
                {
                    "CN" : {
                        "$eq" : "2011"
                    }
                }, 
                {
                    "MN" : {
                        "$eq" : "202101070000000000000002"
                    }
                }, 
                {
                    "timestamp" : {
                        "$lte" : 1640275199.0
                    }
                }, 
                {
                    "timestamp" : {
                        "$gte" : 1639670400.0
                    }
                }
            ]
        },
        "winningPlan" : {
            "stage" : "LIMIT",
            "limitAmount" : 20,
            "inputStage" : {
                "stage" : "FETCH",
                "inputStage" : {
                    "stage" : "IXSCAN",
                    "keyPattern" : {
                        "timestamp" : -1.0,
                        "MN" : 1.0,
                        "CN" : 1.0,
                        "log_key" : 1.0
                    },
                    "indexName" : "timestamp_-1_MN_1_CN_1_log_key_1",
                    "isMultiKey" : false,
                    "multiKeyPaths" : {
                        "timestamp" : [],
                        "MN" : [],
                        "CN" : [],
                        "log_key" : []
                    },
                    "isUnique" : false,
                    "isSparse" : false,
                    "isPartial" : false,
                    "indexVersion" : 2,
                    "direction" : "forward",
                    "indexBounds" : {
                        "timestamp" : [ 
                            "[1640275199.0, 1639670400.0]"
                        ],
                        "MN" : [ 
                            "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                        ],
                        "CN" : [ 
                            "[\"2011\", \"2011\"]"
                        ],
                        "log_key" : [ 
                            "[MinKey, MaxKey]"
                        ]
                    }
                }
            }
        },
        "rejectedPlans" : [ 
            {
                "stage" : "LIMIT",
                "limitAmount" : 20,
                "inputStage" : {
                    "stage" : "FETCH",
                    "filter" : {
                        "$and" : [ 
                            {
                                "CN" : {
                                    "$eq" : "2011"
                                }
                            }, 
                            {
                                "timestamp" : {
                                    "$lte" : 1640275199.0
                                }
                            }, 
                            {
                                "timestamp" : {
                                    "$gte" : 1639670400.0
                                }
                            }
                        ]
                    },
                    "inputStage" : {
                        "stage" : "IXSCAN",
                        "keyPattern" : {
                            "MN" : 1.0
                        },
                        "indexName" : "MN_1",
                        "isMultiKey" : false,
                        "multiKeyPaths" : {
                            "MN" : []
                        },
                        "isUnique" : false,
                        "isSparse" : false,
                        "isPartial" : false,
                        "indexVersion" : 2,
                        "direction" : "forward",
                        "indexBounds" : {
                            "MN" : [ 
                                "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                            ]
                        }
                    }
                }
            }, 
            {
                "stage" : "LIMIT",
                "limitAmount" : 20,
                "inputStage" : {
                    "stage" : "FETCH",
                    "filter" : {
                        "$and" : [ 
                            {
                                "timestamp" : {
                                    "$lte" : 1640275199.0
                                }
                            }, 
                            {
                                "timestamp" : {
                                    "$gte" : 1639670400.0
                                }
                            }
                        ]
                    },
                    "inputStage" : {
                        "stage" : "IXSCAN",
                        "keyPattern" : {
                            "MN" : 1.0,
                            "CN" : 1.0,
                            "QN" : 1.0
                        },
                        "indexName" : "MN_1_CN_1_QN_1",
                        "isMultiKey" : false,
                        "multiKeyPaths" : {
                            "MN" : [],
                            "CN" : [],
                            "QN" : []
                        },
                        "isUnique" : false,
                        "isSparse" : false,
                        "isPartial" : false,
                        "indexVersion" : 2,
                        "direction" : "forward",
                        "indexBounds" : {
                            "MN" : [ 
                                "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                            ],
                            "CN" : [ 
                                "[\"2011\", \"2011\"]"
                            ],
                            "QN" : [ 
                                "[MinKey, MaxKey]"
                            ]
                        }
                    }
                }
            }, 
            {
                "stage" : "LIMIT",
                "limitAmount" : 20,
                "inputStage" : {
                    "stage" : "FETCH",
                    "filter" : {
                        "$and" : [ 
                            {
                                "timestamp" : {
                                    "$lte" : 1640275199.0
                                }
                            }, 
                            {
                                "timestamp" : {
                                    "$gte" : 1639670400.0
                                }
                            }
                        ]
                    },
                    "inputStage" : {
                        "stage" : "IXSCAN",
                        "keyPattern" : {
                            "MN" : 1.0,
                            "CN" : 1.0,
                            "DataTime" : 1.0
                        },
                        "indexName" : "MN_1_CN_1_DataTime_1",
                        "isMultiKey" : false,
                        "multiKeyPaths" : {
                            "MN" : [],
                            "CN" : [],
                            "DataTime" : []
                        },
                        "isUnique" : false,
                        "isSparse" : false,
                        "isPartial" : false,
                        "indexVersion" : 2,
                        "direction" : "forward",
                        "indexBounds" : {
                            "MN" : [ 
                                "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                            ],
                            "CN" : [ 
                                "[\"2011\", \"2011\"]"
                            ],
                            "DataTime" : [ 
                                "[MinKey, MaxKey]"
                            ]
                        }
                    }
                }
            }
        ]
    }
    "ok" : 1.0
}

executionStats 执行计划

{
    "queryPlanner" : {
        "plannerVersion" : 1,
        "namespace" : "xxxxx",
        "indexFilterSet" : false,
        "parsedQuery" : {
            "$and" : [ 
                {
                    "CN" : {
                        "$eq" : "2011"
                    }
                }, 
                {
                    "MN" : {
                        "$eq" : "202101070000000000000002"
                    }
                }, 
                {
                    "timestamp" : {
                        "$lte" : 1640275199.0
                    }
                }, 
                {
                    "timestamp" : {
                        "$gte" : 1639670400.0
                    }
                }
            ]
        },
        "winningPlan" : {
            "stage" : "LIMIT",
            "limitAmount" : 20,
            "inputStage" : {
                "stage" : "FETCH",
                "inputStage" : {
                    "stage" : "IXSCAN",
                    "keyPattern" : {
                        "timestamp" : -1.0,
                        "MN" : 1.0,
                        "CN" : 1.0,
                        "log_key" : 1.0
                    },
                    "indexName" : "timestamp_-1_MN_1_CN_1_log_key_1",
                    "isMultiKey" : false,
                    "multiKeyPaths" : {
                        "timestamp" : [],
                        "MN" : [],
                        "CN" : [],
                        "log_key" : []
                    },
                    "isUnique" : false,
                    "isSparse" : false,
                    "isPartial" : false,
                    "indexVersion" : 2,
                    "direction" : "forward",
                    "indexBounds" : {
                        "timestamp" : [ 
                            "[1640275199.0, 1639670400.0]"
                        ],
                        "MN" : [ 
                            "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                        ],
                        "CN" : [ 
                            "[\"2011\", \"2011\"]"
                        ],
                        "log_key" : [ 
                            "[MinKey, MaxKey]"
                        ]
                    }
                }
            }
        },
        "rejectedPlans" : [ 
            {
                "stage" : "LIMIT",
                "limitAmount" : 20,
                "inputStage" : {
                    "stage" : "FETCH",
                    "filter" : {
                        "$and" : [ 
                            {
                                "CN" : {
                                    "$eq" : "2011"
                                }
                            }, 
                            {
                                "timestamp" : {
                                    "$lte" : 1640275199.0
                                }
                            }, 
                            {
                                "timestamp" : {
                                    "$gte" : 1639670400.0
                                }
                            }
                        ]
                    },
                    "inputStage" : {
                        "stage" : "IXSCAN",
                        "keyPattern" : {
                            "MN" : 1.0
                        },
                        "indexName" : "MN_1",
                        "isMultiKey" : false,
                        "multiKeyPaths" : {
                            "MN" : []
                        },
                        "isUnique" : false,
                        "isSparse" : false,
                        "isPartial" : false,
                        "indexVersion" : 2,
                        "direction" : "forward",
                        "indexBounds" : {
                            "MN" : [ 
                                "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                            ]
                        }
                    }
                }
            }, 
            {
                "stage" : "LIMIT",
                "limitAmount" : 20,
                "inputStage" : {
                    "stage" : "FETCH",
                    "filter" : {
                        "$and" : [ 
                            {
                                "timestamp" : {
                                    "$lte" : 1640275199.0
                                }
                            }, 
                            {
                                "timestamp" : {
                                    "$gte" : 1639670400.0
                                }
                            }
                        ]
                    },
                    "inputStage" : {
                        "stage" : "IXSCAN",
                        "keyPattern" : {
                            "MN" : 1.0,
                            "CN" : 1.0,
                            "QN" : 1.0
                        },
                        "indexName" : "MN_1_CN_1_QN_1",
                        "isMultiKey" : false,
                        "multiKeyPaths" : {
                            "MN" : [],
                            "CN" : [],
                            "QN" : []
                        },
                        "isUnique" : false,
                        "isSparse" : false,
                        "isPartial" : false,
                        "indexVersion" : 2,
                        "direction" : "forward",
                        "indexBounds" : {
                            "MN" : [ 
                                "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                            ],
                            "CN" : [ 
                                "[\"2011\", \"2011\"]"
                            ],
                            "QN" : [ 
                                "[MinKey, MaxKey]"
                            ]
                        }
                    }
                }
            }, 
            {
                "stage" : "LIMIT",
                "limitAmount" : 20,
                "inputStage" : {
                    "stage" : "FETCH",
                    "filter" : {
                        "$and" : [ 
                            {
                                "timestamp" : {
                                    "$lte" : 1640275199.0
                                }
                            }, 
                            {
                                "timestamp" : {
                                    "$gte" : 1639670400.0
                                }
                            }
                        ]
                    },
                    "inputStage" : {
                        "stage" : "IXSCAN",
                        "keyPattern" : {
                            "MN" : 1.0,
                            "CN" : 1.0,
                            "DataTime" : 1.0
                        },
                        "indexName" : "MN_1_CN_1_DataTime_1",
                        "isMultiKey" : false,
                        "multiKeyPaths" : {
                            "MN" : [],
                            "CN" : [],
                            "DataTime" : []
                        },
                        "isUnique" : false,
                        "isSparse" : false,
                        "isPartial" : false,
                        "indexVersion" : 2,
                        "direction" : "forward",
                        "indexBounds" : {
                            "MN" : [ 
                                "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                            ],
                            "CN" : [ 
                                "[\"2011\", \"2011\"]"
                            ],
                            "DataTime" : [ 
                                "[MinKey, MaxKey]"
                            ]
                        }
                    }
                }
            }
        ]
    },
    "executionStats" : {
        "executionSuccess" : true,
        "nReturned" : 20,
        "executionTimeMillis" : 182,
        "totalKeysExamined" : 701,
        "totalDocsExamined" : 20,
        "executionStages" : {
            "stage" : "LIMIT",
            "nReturned" : 20,
            "executionTimeMillisEstimate" : 12,
            "works" : 702,
            "advanced" : 20,
            "needTime" : 681,
            "needYield" : 0,
            "saveState" : 23,
            "restoreState" : 23,
            "isEOF" : 1,
            "invalidates" : 0,
            "limitAmount" : 20,
            "inputStage" : {
                "stage" : "FETCH",
                "nReturned" : 20,
                "executionTimeMillisEstimate" : 12,
                "works" : 701,
                "advanced" : 20,
                "needTime" : 681,
                "needYield" : 0,
                "saveState" : 23,
                "restoreState" : 23,
                "isEOF" : 0,
                "invalidates" : 0,
                "docsExamined" : 20,
                "alreadyHasObj" : 0,
                "inputStage" : {
                    "stage" : "IXSCAN",
                    "nReturned" : 20,
                    "executionTimeMillisEstimate" : 12,
                    "works" : 701,
                    "advanced" : 20,
                    "needTime" : 681,
                    "needYield" : 0,
                    "saveState" : 23,
                    "restoreState" : 23,
                    "isEOF" : 0,
                    "invalidates" : 0,
                    "keyPattern" : {
                        "timestamp" : -1.0,
                        "MN" : 1.0,
                        "CN" : 1.0,
                        "log_key" : 1.0
                    },
                    "indexName" : "timestamp_-1_MN_1_CN_1_log_key_1",
                    "isMultiKey" : false,
                    "multiKeyPaths" : {
                        "timestamp" : [],
                        "MN" : [],
                        "CN" : [],
                        "log_key" : []
                    },
                    "isUnique" : false,
                    "isSparse" : false,
                    "isPartial" : false,
                    "indexVersion" : 2,
                    "direction" : "forward",
                    "indexBounds" : {
                        "timestamp" : [ 
                            "[1640275199.0, 1639670400.0]"
                        ],
                        "MN" : [ 
                            "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                        ],
                        "CN" : [ 
                            "[\"2011\", \"2011\"]"
                        ],
                        "log_key" : [ 
                            "[MinKey, MaxKey]"
                        ]
                    },
                    "keysExamined" : 701,
                    "seeks" : 682,
                    "dupsTested" : 0,
                    "dupsDropped" : 0,
                    "seenInvalidated" : 0
                }
            }
        }
    }
}

查询耗时5秒

3,更换查询语句如下

db.getCollection('xxxx').
find(
{'timestamp': {"$gte": 1639670400}, 'MN': "202101070000000000000002", 'CN': "2011"}).
skip(0).limit(20)

执行计划

{
    "queryPlanner" : {
        "plannerVersion" : 1,
        "namespace" : "xxxx",
        "indexFilterSet" : false,
        "parsedQuery" : {
            "$and" : [ 
                {
                    "CN" : {
                        "$eq" : "2011"
                    }
                }, 
                {
                    "MN" : {
                        "$eq" : "202101070000000000000002"
                    }
                }, 
                {
                    "timestamp" : {
                        "$gte" : 1639670400.0
                    }
                }
            ]
        },
        "winningPlan" : {
            "stage" : "LIMIT",
            "limitAmount" : 20,
            "inputStage" : {
                "stage" : "FETCH",
                "inputStage" : {
                    "stage" : "IXSCAN",
                    "keyPattern" : {
                        "timestamp" : -1.0,
                        "MN" : 1.0,
                        "CN" : 1.0,
                        "log_key" : 1.0
                    },
                    "indexName" : "timestamp_-1_MN_1_CN_1_log_key_1",
                    "isMultiKey" : false,
                    "multiKeyPaths" : {
                        "timestamp" : [],
                        "MN" : [],
                        "CN" : [],
                        "log_key" : []
                    },
                    "isUnique" : false,
                    "isSparse" : false,
                    "isPartial" : false,
                    "indexVersion" : 2,
                    "direction" : "forward",
                    "indexBounds" : {
                        "timestamp" : [ 
                            "[inf.0, 1639670400.0]"
                        ],
                        "MN" : [ 
                            "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                        ],
                        "CN" : [ 
                            "[\"2011\", \"2011\"]"
                        ],
                        "log_key" : [ 
                            "[MinKey, MaxKey]"
                        ]
                    }
                }
            }
        },
        "rejectedPlans" : [ 
            {
                "stage" : "LIMIT",
                "limitAmount" : 20,
                "inputStage" : {
                    "stage" : "FETCH",
                    "filter" : {
                        "$and" : [ 
                            {
                                "CN" : {
                                    "$eq" : "2011"
                                }
                            }, 
                            {
                                "timestamp" : {
                                    "$gte" : 1639670400.0
                                }
                            }
                        ]
                    },
                    "inputStage" : {
                        "stage" : "IXSCAN",
                        "keyPattern" : {
                            "MN" : 1.0
                        },
                        "indexName" : "MN_1",
                        "isMultiKey" : false,
                        "multiKeyPaths" : {
                            "MN" : []
                        },
                        "isUnique" : false,
                        "isSparse" : false,
                        "isPartial" : false,
                        "indexVersion" : 2,
                        "direction" : "forward",
                        "indexBounds" : {
                            "MN" : [ 
                                "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                            ]
                        }
                    }
                }
            }, 
            {
                "stage" : "LIMIT",
                "limitAmount" : 20,
                "inputStage" : {
                    "stage" : "FETCH",
                    "filter" : {
                        "timestamp" : {
                            "$gte" : 1639670400.0
                        }
                    },
                    "inputStage" : {
                        "stage" : "IXSCAN",
                        "keyPattern" : {
                            "MN" : 1.0,
                            "CN" : 1.0,
                            "QN" : 1.0
                        },
                        "indexName" : "MN_1_CN_1_QN_1",
                        "isMultiKey" : false,
                        "multiKeyPaths" : {
                            "MN" : [],
                            "CN" : [],
                            "QN" : []
                        },
                        "isUnique" : false,
                        "isSparse" : false,
                        "isPartial" : false,
                        "indexVersion" : 2,
                        "direction" : "forward",
                        "indexBounds" : {
                            "MN" : [ 
                                "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                            ],
                            "CN" : [ 
                                "[\"2011\", \"2011\"]"
                            ],
                            "QN" : [ 
                                "[MinKey, MaxKey]"
                            ]
                        }
                    }
                }
            }, 
            {
                "stage" : "LIMIT",
                "limitAmount" : 20,
                "inputStage" : {
                    "stage" : "FETCH",
                    "filter" : {
                        "timestamp" : {
                            "$gte" : 1639670400.0
                        }
                    },
                    "inputStage" : {
                        "stage" : "IXSCAN",
                        "keyPattern" : {
                            "MN" : 1.0,
                            "CN" : 1.0,
                            "DataTime" : 1.0
                        },
                        "indexName" : "MN_1_CN_1_DataTime_1",
                        "isMultiKey" : false,
                        "multiKeyPaths" : {
                            "MN" : [],
                            "CN" : [],
                            "DataTime" : []
                        },
                        "isUnique" : false,
                        "isSparse" : false,
                        "isPartial" : false,
                        "indexVersion" : 2,
                        "direction" : "forward",
                        "indexBounds" : {
                            "MN" : [ 
                                "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                            ],
                            "CN" : [ 
                                "[\"2011\", \"2011\"]"
                            ],
                            "DataTime" : [ 
                                "[MinKey, MaxKey]"
                            ]
                        }
                    }
                }
            }
        ]
    },
}

executionStats 执行计划

/* 1 */
{
    "queryPlanner" : {
        "plannerVersion" : 1,
        "namespace" : "xxxxx",
        "indexFilterSet" : false,
        "parsedQuery" : {
            "$and" : [ 
                {
                    "CN" : {
                        "$eq" : "2011"
                    }
                }, 
                {
                    "MN" : {
                        "$eq" : "202101070000000000000002"
                    }
                }, 
                {
                    "timestamp" : {
                        "$gte" : 1639670400.0
                    }
                }
            ]
        },
        "winningPlan" : {
            "stage" : "LIMIT",
            "limitAmount" : 20,
            "inputStage" : {
                "stage" : "FETCH",
                "inputStage" : {
                    "stage" : "IXSCAN",
                    "keyPattern" : {
                        "timestamp" : -1.0,
                        "MN" : 1.0,
                        "CN" : 1.0,
                        "log_key" : 1.0
                    },
                    "indexName" : "timestamp_-1_MN_1_CN_1_log_key_1",
                    "isMultiKey" : false,
                    "multiKeyPaths" : {
                        "timestamp" : [],
                        "MN" : [],
                        "CN" : [],
                        "log_key" : []
                    },
                    "isUnique" : false,
                    "isSparse" : false,
                    "isPartial" : false,
                    "indexVersion" : 2,
                    "direction" : "forward",
                    "indexBounds" : {
                        "timestamp" : [ 
                            "[inf.0, 1639670400.0]"
                        ],
                        "MN" : [ 
                            "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                        ],
                        "CN" : [ 
                            "[\"2011\", \"2011\"]"
                        ],
                        "log_key" : [ 
                            "[MinKey, MaxKey]"
                        ]
                    }
                }
            }
        },
        "rejectedPlans" : [ 
            {
                "stage" : "LIMIT",
                "limitAmount" : 20,
                "inputStage" : {
                    "stage" : "FETCH",
                    "filter" : {
                        "$and" : [ 
                            {
                                "CN" : {
                                    "$eq" : "2011"
                                }
                            }, 
                            {
                                "timestamp" : {
                                    "$gte" : 1639670400.0
                                }
                            }
                        ]
                    },
                    "inputStage" : {
                        "stage" : "IXSCAN",
                        "keyPattern" : {
                            "MN" : 1.0
                        },
                        "indexName" : "MN_1",
                        "isMultiKey" : false,
                        "multiKeyPaths" : {
                            "MN" : []
                        },
                        "isUnique" : false,
                        "isSparse" : false,
                        "isPartial" : false,
                        "indexVersion" : 2,
                        "direction" : "forward",
                        "indexBounds" : {
                            "MN" : [ 
                                "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                            ]
                        }
                    }
                }
            }, 
            {
                "stage" : "LIMIT",
                "limitAmount" : 20,
                "inputStage" : {
                    "stage" : "FETCH",
                    "filter" : {
                        "timestamp" : {
                            "$gte" : 1639670400.0
                        }
                    },
                    "inputStage" : {
                        "stage" : "IXSCAN",
                        "keyPattern" : {
                            "MN" : 1.0,
                            "CN" : 1.0,
                            "QN" : 1.0
                        },
                        "indexName" : "MN_1_CN_1_QN_1",
                        "isMultiKey" : false,
                        "multiKeyPaths" : {
                            "MN" : [],
                            "CN" : [],
                            "QN" : []
                        },
                        "isUnique" : false,
                        "isSparse" : false,
                        "isPartial" : false,
                        "indexVersion" : 2,
                        "direction" : "forward",
                        "indexBounds" : {
                            "MN" : [ 
                                "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                            ],
                            "CN" : [ 
                                "[\"2011\", \"2011\"]"
                            ],
                            "QN" : [ 
                                "[MinKey, MaxKey]"
                            ]
                        }
                    }
                }
            }, 
            {
                "stage" : "LIMIT",
                "limitAmount" : 20,
                "inputStage" : {
                    "stage" : "FETCH",
                    "filter" : {
                        "timestamp" : {
                            "$gte" : 1639670400.0
                        }
                    },
                    "inputStage" : {
                        "stage" : "IXSCAN",
                        "keyPattern" : {
                            "MN" : 1.0,
                            "CN" : 1.0,
                            "DataTime" : 1.0
                        },
                        "indexName" : "MN_1_CN_1_DataTime_1",
                        "isMultiKey" : false,
                        "multiKeyPaths" : {
                            "MN" : [],
                            "CN" : [],
                            "DataTime" : []
                        },
                        "isUnique" : false,
                        "isSparse" : false,
                        "isPartial" : false,
                        "indexVersion" : 2,
                        "direction" : "forward",
                        "indexBounds" : {
                            "MN" : [ 
                                "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                            ],
                            "CN" : [ 
                                "[\"2011\", \"2011\"]"
                            ],
                            "DataTime" : [ 
                                "[MinKey, MaxKey]"
                            ]
                        }
                    }
                }
            }
        ]
    },
    "executionStats" : {
        "executionSuccess" : true,
        "nReturned" : 20,
        "executionTimeMillis" : 9,
        "totalKeysExamined" : 794,
        "totalDocsExamined" : 20,
        "executionStages" : {
            "stage" : "LIMIT",
            "nReturned" : 20,
            "executionTimeMillisEstimate" : 0,
            "works" : 795,
            "advanced" : 20,
            "needTime" : 774,
            "needYield" : 0,
            "saveState" : 24,
            "restoreState" : 24,
            "isEOF" : 1,
            "invalidates" : 0,
            "limitAmount" : 20,
            "inputStage" : {
                "stage" : "FETCH",
                "nReturned" : 20,
                "executionTimeMillisEstimate" : 0,
                "works" : 794,
                "advanced" : 20,
                "needTime" : 774,
                "needYield" : 0,
                "saveState" : 24,
                "restoreState" : 24,
                "isEOF" : 0,
                "invalidates" : 0,
                "docsExamined" : 20,
                "alreadyHasObj" : 0,
                "inputStage" : {
                    "stage" : "IXSCAN",
                    "nReturned" : 20,
                    "executionTimeMillisEstimate" : 0,
                    "works" : 794,
                    "advanced" : 20,
                    "needTime" : 774,
                    "needYield" : 0,
                    "saveState" : 24,
                    "restoreState" : 24,
                    "isEOF" : 0,
                    "invalidates" : 0,
                    "keyPattern" : {
                        "timestamp" : -1.0,
                        "MN" : 1.0,
                        "CN" : 1.0,
                        "log_key" : 1.0
                    },
                    "indexName" : "timestamp_-1_MN_1_CN_1_log_key_1",
                    "isMultiKey" : false,
                    "multiKeyPaths" : {
                        "timestamp" : [],
                        "MN" : [],
                        "CN" : [],
                        "log_key" : []
                    },
                    "isUnique" : false,
                    "isSparse" : false,
                    "isPartial" : false,
                    "indexVersion" : 2,
                    "direction" : "forward",
                    "indexBounds" : {
                        "timestamp" : [ 
                            "[inf.0, 1639670400.0]"
                        ],
                        "MN" : [ 
                            "[\"202101070000000000000002\", \"202101070000000000000002\"]"
                        ],
                        "CN" : [ 
                            "[\"2011\", \"2011\"]"
                        ],
                        "log_key" : [ 
                            "[MinKey, MaxKey]"
                        ]
                    },
                    "keysExamined" : 794,
                    "seeks" : 775,
                    "dupsTested" : 0,
                    "dupsDropped" : 0,
                    "seenInvalidated" : 0
                }
            }
        }
    }
}

查询耗时:0.07秒

4,服务器内存消耗
image.png

MongoDB 版本 version v4.0.12

阅读 1.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进