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

Индекс в MongoDB

Индексът е типичен начин за ускоряване на заявките в нормална система за бази данни. Няма разлика между MongoDB и система за бази данни, базирана на документи. Тази статия дава представа за индекса в MongoDB, за оптимизиране на заявки.

Индекс на монго:

По подразбиране

_id е обект ObjectId, 12-байтов тип BSON, който гарантира уникалност в колекцията. ObjectId се генерира въз основа на времеви печат, идентификатор на машината, идентификатор на процес и локален инкрементален брояч на процеса.

Едно поле

За индекс с едно поле и операции за сортиране, редът на сортиране (т.е. възходящ или низходящ) на ключа на индекса няма значение, тъй като MongoDB може да преминава през индекса в двете посоки. Стойността на индекса е типът на индекса. Например, 1 показва възходящ ред, а -1 определя низходящия ред.

db.friends.createIndex( { "name" : 1 } )

Съставно поле

Редът на полетата, изброени в съставния индекс, има значение. Например, ако съставен индекс се състои от { userid:1, score:-1 }, индексът първо се сортира по идентификатор на потребител и след това, в рамките на всяка стойност на userid, сортира по резултат.

db.products.createIndex( { "item": 1, "stock": 1 } )

Няколко клавиша

MongoDB използва множество индекси за индексиране на съдържанието в масив. MongoDB създава отделни индексни записи за всеки елемент от масива. Не е необходимо изрично да създавате множество ключове.

Текстов индекс

Една колекция може да има най-много един текстов индекс.
Разходи за производителност за текстов индекс:
текстовите индекси могат да бъдат големи. Те съдържат по един индексен запис за всяка уникална дума след ствола във всяко индексирано поле за всеки вмъкнат документ.
текстовите индекси ще повлияят на пропускателната способност на вмъкване, тъй като MongoDB трябва да добави индексен запис за всяка уникална дума след стволовото име във всяко индексирано поле на всеки нов изходен документ.

db.reviews.createIndex( { comments: "text" } )

Хеш индекс

Заявете съдържание по неговата хеширана стойност. Хешът е функция, която се изчислява по нейната стойност. Хешираната стойност е проектирана да бъде отделна стойност. Единственото предимство е, че е толкова бързо, което отнема най-много O(1), но по договор нормалното двоично дърво за търсене ще вземе O(Log(N)). Хешът теоретично ще бъде по-бърз от нормалното изпълнение на дървото за двоично търсене. Но недостатъкът е, че търсенето в диапазона на хеш индекса ще бъде изключително бавно от нормалния индекс.

Това е пример в python за изграждане на хеш индекс

db.active.createIndex( { a: "hashed" } )

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

  2. insertMany Обработка на дублиращи се грешки

  3. Изключение, удостоверяващо MongoCredential и некатегоризирано Mongo Db Exception

  4. NodeJS и MongoDB FindAndModify() трябва да бъдат премахнати или актуализирани

  5. Използване на съхранени функции на JavaScript в конвейера за агрегиране, MapReduce или runCommand