Wie erklärt man die zusammengesetzte (Kombinations-)Abfrage von Mongodb?
世界只因有你
世界只因有你 2017-05-17 10:01:57
0
1
1014

Mongodb-Version: v3.4

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

Bei der Verwendung

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

explain('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
                                }
                        }
                }

Wie im obigen Beispiel, nur dass der Port einen Index verwendet? Oder werden beide verwendet? Wenn beide verwendet werden, müssen wir dann trotzdem einen zusammengesetzten Index erstellen?
Danke

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

Antworte allen(1)
给我你的怀抱

自己回答一下,上面有用到索引,但是只有一部分。
如果建立复合索引,将会更快的搜索到。
所以,组合搜索还是得用复合索引。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!