sql >> Database >  >> NoSQL >> MongoDB

Mongodb:wanneer moet u zorgen voor een index?

Het lijkt erop dat mijn opmerking een beetje verkeerd is begrepen, dus ik zal het verduidelijken. Het maakt niet echt uit wanneer je het aanroept, als het maar op een bepaald moment wordt aangeroepen voordat je find() voor de eerste keer aanroept. Met andere woorden, het maakt niet echt uit wanneer u de index maakt, zolang deze er maar is voordat u deze verwacht te gebruiken.

Een veelvoorkomend patroon dat ik veel heb gezien, is het coderen van de ensureIndex tegelijkertijd (en op dezelfde plaats) als de find() telefoongesprek. ensureIndex zal controleren of de index bestaat en deze aanmaken als dat niet het geval is. Er is ongetwijfeld wat overhead (zij het erg klein) bij het aanroepen van assuranceindex voordat u ooit aanroept om find() aan te roepen, dus het is beter om dit niet te doen.

Ik bel wel ensureIndex in code om implementaties te vereenvoudigen en om te voorkomen dat de db en codebase afzonderlijk moeten worden beheerd. De afweging van het gemak van implementatie compenseert de redundantie van volgende oproepen om ervoor te zorgenIndex (voor mij.)



  1. Mongo DB aggregatie array grootte groter dan match

  2. ScaleGrid volledig beheerde hosting voor Redis™ nu beschikbaar op Azure

  3. mongoDB:C#-stuurprogramma V2 Een item in een geneste verzameling bijwerken

  4. meteor/mongodb:gebruik verschillende DB voor authenticatie en lezen/schrijven