46 votes

Mongodb : quand appeler assurerIndex ?

Quand dois-je appeler assurerIndex ? Avant d'insérer un seul enregistrement, après avoir inséré un seul enregistrement ou avant d'appeler find() ?

Salutations,

Johnny

19voto

UpTheCreek Points 7719

Je vous recommande d'appeler assurerIndex une fois, au démarrage de votre application.

4voto

Karoly Horvath Points 45145

Cela n'a pas d'importance, mais vous n'avez à le faire qu'une seule fois. Si vous souhaitez insérer par lots une grande quantité de données dans une collection vide, il est préférable de créer l'index après les insertions, mais sinon, cela n'a pas vraiment d'importance.

2voto

Tim Points 5911

Vous n'avez besoin de le faire qu'une seule fois. Exemple:

 db.table.insert({foo: 'bar'});
var foo = db.table.findOne({foo: 'bar'}); // => delivered from FS, not RAM
db.table.ensureIndex({foo: 1});
var foo = db.table.findOne({foo: 'bar'}); // => delivered from RAM, not FS
db.table.insert({foo: 'foo'});
var foo = db.table.findOne({foo: 'foo'}); // => delivered from RAM, not FS

1voto

jacobra Points 324

Si vous ajoutez un index au préalable, chaque appel d'insertion/mise à jour/suppression doit également modifier chaque index. Donc, du point de vue de l'optimisation, vous voudrez probablement le retarder le plus longtemps possible avant d'émettre des requêtes. Cependant, d'un point de vue fonctionnel, cela n'a pas d'importance.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X