Привет.
Есть 27 миллионов документов в коллекции db.users и меня интересует выборка по одному полю массива (1 уровень вложенности).
Подскажите, пожалуйста, как определить время выполнения запроса: db.users.find({"cred.0.shortnumber" : "123"})?
Какой индекс поможет выполнить запрос максимально быстро? Сейчас запустил db.userscreateIndex({"cred.0.shortnumber" : 1}), и что-то висит он час, и неизвестно, будет ли быстрее самого первого запроса? =)
Ромзес Панагиотис, т.е. если нужный мне запрос отрабатывает 24ч (условно), то индексы сделаются за меньший промежуток времени, и запрос по ним потом пробежит тоже намного быстрее?
Вам нужно создать индекс в фоне, тогда он будет так сильно грузить базу.
27 млн записей это много. В зависимости от железа, создание индекса может занять длительное время.
В одной из моих прошлых баз была коллекция с 200млн записей, индекс по ней создавался около 3х часов. Это с SSD и гарантированным IOPS.