TL; DR : я не знаю, как заставить Parse выбрать индекс, но вы должны использовать функцию explain()
Mongo для измерения производительности и использования индекса, а затем удалить неоптимальные, которые интенсивно используются. Кроме того, используйте отличную команду поддержки MLab для конкретных вопросов оптимизации.
Насколько я знаю, нет никакого способа сделать Mongo hint()
с помощью Parse.
Вместо этого вам нужно запустить explain()
для ваших запросов и посмотреть, какие индексы используются. Если ваш запрос использует субоптимальный индекс, я не думаю, что вы можете что-то сделать, кроме как удалить его.
Вот некоторая информация о измерении индекса использования , но сложная часть заключается в преобразовании ваших запросов синтаксического анализа в монго-запросы, чтобы вы могли их протестировать.
Самый простой способ, который я нашел, это использовать триггер beforeFind в облачном коде. Когда я пытаюсь перевести запрос, console.log()
здесь, а затем переписать его на запрос монго, как правило, довольно просто.
После того, как у вас есть запрос mongo, вы можете выполнить объяснения по нему и посмотреть, какие индексы используются, и это может сообщить вашим решениям, какие индексы удалить / сохранить.
Кроме поддержания чистоты корабля с вашими индексами (т. Е. Без субоптимальных / избыточных), я не уверен, что вы многое можете сделать, чтобы убедиться, что используется правильный. Кроме того, если у вас есть платный план MLab, его поддержка очень полезна и может помочь разобраться в особенностях вашей работы с БД и дать советы о том, как оптимизировать ваши индексы. Обязательно обращайтесь к ним с конкретными вопросами по индексам - они очень помогли мне в прошлом.