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

Простата префиксна заявка на Mongodb с регулярен израз и сортиране е бавна

scanAndOrder: true в изхода за обяснение показва, че заявката трябва да извлече документите и след това да ги сортира в паметта, преди да бъде върнат изходът. Това е скъпа операция и ще окаже влияние върху ефективността на вашата заявка.

Съществуването на scanAndOrder: true както и разликата в nscanned един n в изхода за обяснение показва, че заявката не използва оптимален индекс. В този случай изглежда, че трябва да се направи сканиране на колекция. Може да успеете да облекчите този проблем, като включите индексните ключове във вашия sort критерии. От моето тестване:

db.posts.find({hashtags: /^noticias/ }).limit(15).sort({hashtags:1, rank : -1}).explain()

Не изисква сканиране и поръчка и връща n и nscanned от броя записи, които търсите. Това също би означавало сортиране по hashtags ключ, който може или не може да бъде полезен за вас, но трябва да повиши производителността на заявката.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Съхранявайте enum MongoDB

  2. използвайки променлива в актуализацията на mongodb

  3. Актуализирането на записи в MongoDB чрез pymongo води до изтриване на повечето от тях

  4. Случаен запис от MongoDB

  5. Основите за разполагане на набор от реплики на MongoDB и парчета с помощта на Puppet