sql >> Databáze >  >> NoSQL >> MongoDB

Mohu upravit existující index v MongoDB, aniž bych jej zrušil?

Neexistuje žádný způsob, jak změnit index, jak popisujete, a pokud ano, myslím, že výsledek z hlediska výkonu by byl podobný – jak by databáze například používala napůl vytvořený/změněný index, když by probíhala tato operace?

Místo toho bych doporučil použít možnost na pozadí k vytvoření indexu na jediném uzlu, pokud je to vaše konfigurace - bude to trvat déle, ale nebude to tolik narušovat váš normální provoz. Jakmile bude dokončen, můžete starý index v klidu zahodit.

Nicméně , pokud máte sadu replik (doporučeno), měli byste si být vědomi toho, že vytváření indexu se vždy (aktuálně) provádí v popředí na sekundární. Pokud se chcete vyhnout zatížení vašich sekundárních souborů, měli byste postupovat podle zde uvedených kroků, abyste jednoho člena po druhém odebrali a vytvořili požadovaný index před opětovným připojením k sadě:

http://docs.mongodb.org/manual/administration/indexes/#index-building-replica-sets

Aktualizovat

Počínaje verzí 2.6 budou možné indexy na pozadí stavět na sekundárních dílech (podrobnosti viz poznámky k verzi). Toto nebude zpětně portováno na předchozí verze, takže výše uvedená poznámka bude platit pro verze starší než 2.6.

A konečně, jako obecná poznámka, indexy vytvořené na pozadí budou obecně větší a méně účinné než indexy vytvořené na popředí, takže výše uvedená metodika bude mít stále své využití.




  1. Nápověda MongoDB Query - dotaz na hodnoty libovolného klíče v dílčím objektu

  2. Má Meteor odlišný dotaz na sbírky?

  3. Skupinový výsledek podle časového intervalu 15 minut v MongoDb

  4. Aktualizace cesty 'x' by vytvořila konflikt v 'x'