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 индекс за один раз, поэтому вы не используете в полной мере преимущества индексации. Попробуйте составной индекс в обоих полях, и вы увидите значительное улучшение.

Другие вопросы по тегам