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

В MongoDB, ако даден индекс е в 3 полета, можем ли да използваме този индекс, когато правим заявки в 2 полета? (заместващ знак в 3-то поле)

Това са индекси на B-дърво, така че могат да се използват за префиксно подмножество на включените колони. Ако нямате водещите колони, сканирането на диапазон на индекса (операцията, за която основно се използва индекс на B-дърво) вече не е възможно. Може да има други начини да продължите да използвате индекса (Oracle има бързи пълни сканирания и пропускащи сканирания например), но обикновено индексът няма да се използва.

Това разсъждение се отнася за всичко, което използва индекси на B-дърво, релационни DB или не.

Отново, това не зависи от типа на колоната, а от реда на колоните в индекса. Трябва да имате водещите колони (във вашия случай имате нужда от page_type). Ако имате много заявки без page_type, помислете за повторно създаване на индекса с page_type като последна колона (което разбира се може също да има отрицателно въздействие върху други заявки). Като цяло, трябва да знаете какъв вид заявки ще изпълнявате, преди да можете да проектирате индексите.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Моля, използвайте „MongoMappingContext#setAutoIndexCreation(boolean)“ или заменете „MongoConfigurationSupport#autoIndexCreation()“, за да бъде изрично

  2. функцията mongoose findOne връща undefined

  3. Spring Data MongoDB Търсене с Pipeline Aggregation

  4. Показване само на съвпадащи полета за текстово търсене в MongoDB

  5. В mongoDb, как премахвате елемент от масива по неговия индекс?