MongoDB считает очень медленно
У меня есть коллекция с 1,5 миллионами документов. Я считаю с использованием PHP:
$db->some->ensureIndex(array("sometext" => 1));
$db->some->ensureIndex(array("datsbla" => 1));
$arr["sometext"] = $string;
$arr["datsbla"] = array('$gte' => $some, '$lte' => $thing);
$count = $db->some->count($arr);
Я включил профилировщик, и каждый такой счет составляет 4500 мс. У меня на странице 20 таких счетчиков, поэтому моя веб-страница ОЧЕНЬ ОЧЕНЬ МЕДЛЕННА.
Что я должен сделать, чтобы сделать это быстрее (< 100 мс)? Возможно ли вообще использовать MongoDB?
Благодарю.
1 ответ
Решение
У вас есть два отдельных отдельных индекса - запрос может использовать только 1 индекс за один раз, поэтому вы не используете в полной мере преимущества индексации. Попробуйте составной индекс в обоих полях, и вы увидите значительное улучшение.