Database Reference
In-Depth Information
Wir wollen einen B-Tree-Index für das display -Feld erzeugen. Doch zuerst
wollen wir überprüfen, ob der Index die Geschwindigkeit tatsächlich erhöht.
Zu diesem Zweck sehen wir uns zuerst eine Query ohne Index an. Die Me-
thode explain wird genutzt, um die Details einer Operation auszugeben.
db.phones.find({display: "+1 800-5650001" }).explain()
{
"cursor" : "BasicCursor" ,
"nscanned" : 109999,
"nscannedObjects" : 109999,
"n" :1,
"millis" : 52,
"indexBounds" :{
}
}
Ihre Ausgabe wird nicht unserer Ausgabe entsprechen, doch beachten Sie
das millis -Feld - die zur Verarbeitung der Query benötigte Zeit in Millise-
kunden - , in dem Sie üblicherweise einen zweistelligen Wert finden.
Wir erzeugen einen Index, indem wir ensureIndex(felder,optionen) für die
Collection aufrufen. Der Parameter felder ist ein Objekt, das die zu indexie-
renden Felder enthält. Der optionen -Parameter beschreibt den Typ des zu
erzeugenden Indizes. In unserem Beispiel bauen wir einen eindeutigen Index
für display auf, bei dem Duplikate einfach aussortiert werden sollen.
db.phones.ensureIndex(
{ display : 1 },
{ unique : true, dropDups : true }
)
Nun lassen wir find erneut laufen und überprüfen mit explain , ob sich die
Situation verbessert hat.
db.phones.find({ display: "+1 800-5650001" }).explain()
{
"cursor" : "BtreeCursor display _ 1" ,
"nscanned" :1,
"nscannedObjects" :1,
"n" :1,
"millis" :0,
"indexBounds" :{
"display" :[
[
"+1 800-5650001" ,
"+1 800-5650001"
]
]
}
}
Search WWH ::




Custom Search