Я храню метаданные книги, такие как имя, авторы, цена, издатель и т.д. в документе mongodb. У меня около 10 миллионов этих документов, и все они находятся в одной коллекции. Средний размер документа - 1,9 КБ. Теперь у меня есть индексы на name
, authors
и price
. На самом деле у меня есть 2 индекса по цене один в порядке возрастания и один убывающий. Моя версия mongodb - 2.2.0, и я использую драйвер php для запроса манго. Версия драйвера 1.12. Но когда я делаю запрос диапазона по цене, я получаю MongoCursorTimeoutException
. В моем запросе я пытаюсь найти книги в определенном ценовом диапазоне, например "цена менее 1000 и более 500".
Увеличение таймаута не кажется хорошей идеей (это уже 30 секунд). Есть ли что-то еще, что я могу сделать, чтобы ускорить процесс запроса.
ИЗМЕНИТЬ
На самом деле мой индекс цен является сложным. У меня есть поле состояния, которое имеет целочисленное значение, поэтому мой индекс цен выглядит как {price:-1,status:1}
и {price:1,status:1}
Также я пытаюсь получить 20 документов за раз с PHP.