Bagaimana untuk menerangkan pertanyaan kompaun (gabungan) Mongodb?
世界只因有你
世界只因有你 2017-05-17 10:01:57
0
1
1022

Versi Mongodb: v3.4

db.h.reateIndex({'port':1});
db.h.reateIndex({'geo.city':1});

Apabila menggunakan

db.h.find({'port':'80','geo.city':'Taipei'},{'port':1,'geo.city':1,'geo.country':1})

terangkan('executionStats')

"executionStats" : {
                "executionSuccess" : true,
                "nReturned" : 280952,
                "executionTimeMillis" : 10056,
                "totalKeysExamined" : 879232,
                "totalDocsExamined" : 879232,
                "executionStages" : {
                        "stage" : "PROJECTION",
                        "nReturned" : 280952,
                        "executionTimeMillisEstimate" : 9763,
                        "works" : 879233,
                        "advanced" : 280952,
                        "needTime" : 598280,
                        "needYield" : 0,
                        "saveState" : 6915,
                        "restoreState" : 6915,
                        "isEOF" : 1,
                        "invalidates" : 0,
                        "transformBy" : {
                                "port" : 1,
                                "geo.city" : 1,
                                "geo.country" : 1,
                        },
                        "inputStage" : {
                                "stage" : "FETCH",
                                "filter" : {
                                        "geo.city" : {
                                                "$eq" : "Taipei"
                                        }
                                },
                                "nReturned" : 280952,
                                "executionTimeMillisEstimate" : 9246,
                                "works" : 879233,
                                "advanced" : 280952,
                                "needTime" : 598280,
                                "needYield" : 0,
                                "saveState" : 6915,
                                "restoreState" : 6915,
                                "isEOF" : 1,
                                "invalidates" : 0,
                                "docsExamined" : 879232,
                                "alreadyHasObj" : 0,
                                "inputStage" : {
                                        "stage" : "IXSCAN",
                                        "nReturned" : 879232,
                                        "executionTimeMillisEstimate" : 466,
                                        "works" : 879233,
                                        "advanced" : 879232,
                                        "needTime" : 0,
                                        "needYield" : 0,
                                        "saveState" : 6915,
                                        "restoreState" : 6915,
                                        "isEOF" : 1,
                                        "invalidates" : 0,
                                        "keyPattern" : {
                                                "port" : 1
                                        },
                                        "indexName" : "port_1",
                                        "isMultiKey" : false,
                                        "multiKeyPaths" : {
                                                "port" : [ ]
                                        },
                                        "isUnique" : false,
                                        "isSparse" : false,
                                        "isPartial" : false,
                                        "indexVersion" : 2,
                                        "direction" : "forward",
                                        "indexBounds" : {
                                                "port" : [
                                                        "[\"80\", \"80\"]"
                                                ]
                                        },
                                        "keysExamined" : 879232,
                                        "seeks" : 1,
                                        "dupsTested" : 0,
                                        "dupsDropped" : 0,
                                        "seenInvalidated" : 0
                                }
                        }
                }

Seperti contoh di atas, kecuali port menggunakan indeks? Atau adakah kedua-duanya digunakan? Jika kedua-duanya digunakan, adakah kita masih perlu mencipta indeks komposit?
Terima kasih

世界只因有你
世界只因有你

membalas semua(1)
给我你的怀抱

Jawab sendiri, indeks digunakan di atas, tetapi hanya sebahagian daripadanya.
Jika anda mencipta indeks komposit, ia akan dicari dengan lebih pantas.
Jadi, anda masih perlu menggunakan indeks komposit untuk carian gabungan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan