quando all'indice su più chiavi in mongodb
-
26-09-2019 - |
Domanda
dire che ho un documento prodotto con: campi Q.tà: Prezzo e. A volte mi voglio trovare tutti i documenti che corrispondono a un determinato: PREZZO E: qty, e altre volte sarà uno: prezzo da solo o: qty da solo
.ho già indicizzato il: prezzo e:? Qtà tasti, ma faccio anche bisogno di creare un indice composto su entrambi insieme o sono gli indici principali singoli abbastanza
Edit: Ho trovato questo articolo sul sito MongoDB molto utili:
http://www.mongodb.org/display/DOCS/ indicizzazione + Consigli + e + FAQ
Soluzione
Un indice su price
aiuta con le query su price
. Un indice su qty
aiuta con le query su qty
. Un indice su price
e qty
aiuta con le query su price
e query su price
e qty
. Quindi, è come avere due indici per il prezzo di uno. Essa non aiuterà per le query su qty
, però.
Si dovrebbe ridurre al minimo il numero di indici che avete, in modo da cadere uno dei vostri indici single-chiave e di creare un indice composto di partenza con quella chiave.
Come regola generale, se si sta facendo una query su x
, y
, e z
, si dovrebbe avere un indice come {x:1, y:1, z:1}
. Questo indice farà le seguenti query veloce:
db.foo.find({x : ..., y : ..., z : ...})
db.foo.find({x : ..., y : ...})
db.foo.find({x : ...})
Non farà queste query veloce:
db.foo.find({y : ..., z : ...})
db.foo.find({y : ...})
Quindi, assicurarsi che la query ha la chiave di avviamento (s) di un indice in esso.
Altri suggerimenti
Se avete bisogno di: prezzo da solo o:. Qty da solo quindi un indice composto non funzionerà