MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Мога ли да променя съществуващ индекс в MongoDB, без да го пускам?

Няма начин да се промени индекс, както описваш, и ако имаше, мисля, че резултатът по отношение на производителността би бил подобен - как базата данни ще използва наполовина създаден/променен индекс, докато тази операция се изпълняваше например?

Вместо това бих препоръчал да използвате опцията за фон за изграждане на индекса на един възел, ако това е вашата конфигурация - това ще отнеме повече време, но няма да пречи толкова на нормалната ви работа. След като приключите, можете да пуснете стария индекс в свободното си време.

Въпреки това , ако имате набор от реплика (препоръчително), трябва да сте наясно, че създаването на индекс винаги (в момента) се извършва на преден план на вторичния. Ако искате да избегнете натоварването на вашите вторични програми, тогава трябва да следвате стъпките, описани тук, за да извадите член един по един и да създадете необходимия индекс, преди да се присъедините отново към набора:

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

Актуализиране

Започвайки с версия 2.6, ще бъде възможно надграждане на фонов индекс върху вторични елементи (вижте бележките по версията за подробности). Това няма да бъде пренесено обратно към предишни версии, така че горната бележка ще бъде вярна за версии преди 2.6.

И накрая, като обща забележка, индексите, изградени на заден план, обикновено ще бъдат по-големи и по-малко ефективни от тези, изградени на преден план, така че методологията по-горе все още ще има своите приложения.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да създадете потребител и да добавите роля в MongoDB

  2. Вземете _id на вмъкнат документ в базата данни Mongo в NodeJS

  3. Запитване на mongodb от golang с помощта на _id, съхранен в масив

  4. Разбиране на ограничението за размера на документа на MongoDB BSON

  5. Как правилно да се справяме с миграциите на схемата на mongoose?