Коллекция Cosmos DB не использует индекс _id при запросе по _id? - PullRequest
1 голос
/ 12 февраля 2020

У меня есть коллекция CosmosDb - MongoDb, которую я использую исключительно как хранилище ключей / значений для произвольных данных, где _id является ключом для моей коллекции.

Когда я запускаю запрос ниже:

globaldb:PRIMARY> db.FieldData.find({_id : new BinData(3, "xIAPpVWVkEaspHxRbLjaRA==")}).explain(true)

Я получаю такой результат:

{
    "_t" : "ExplainResponse",
    "ok" : 1,
    "queryPlanner" : {
            "plannerVersion" : 1,
            "namespace" : "data.FieldData",
            "indexFilterSet" : false,
            "parsedQuery" : {
                    "$and" : [ ]
            },
            "winningPlan" : {

            },
            "rejectedPlans" : [ ]
    },
    "executionStats" : {
            "executionSuccess" : true,
            "nReturned" : 1,
            "executionTimeMillis" : 106,
            "totalKeysExamined" : 0,
            "totalDocsExamined" : 3571,
            "executionStages" : {

            },
            "allPlansExecution" : [ ]
    },
    "serverInfo" : #REMOVED#
}

Обратите внимание, что totalKeysExamined равно 0, а totalDocsExamined равно 3571 и запрос занял 106 мс. Если я запускаю без .explain (), он находит документ.

Я бы ожидал, что этот запрос будет молниеносным, учитывая, что поле _id автоматически индексируется как уникальный первичный ключ в коллекции. По мере того как размер этой коллекции увеличивается, я только ожидаю, что эта проблема усугубится.

Я определенно не понимаю что-то об индексе и о том, как он работает здесь. Любая помощь будет наиболее ценной.

Спасибо!

...