Эффективен ли mongoDB при поиске нескольких ключей? - PullRequest
6 голосов
/ 06 декабря 2011

Я оцениваю MongoDB из Membased / memcached, потому что хочу большей гибкости.

Конечно, Membase отлично подходит для быстрого (многопользовательского) поиска.

Мне нравятся дополнительные опции, которые дает мне MongoDB, но быстро ли он выполняет многоключевой поиск? Я видел операторы $ или and $ in, и я уверен, что смогу смоделировать его с этим. Я просто хочу знать, является ли он исполнителем (в той же лиге), что и Membase.

сценарий использования, например, Lucene / Solr возвращает 20 идентификаторов продукта. Найдите эти идентификаторы продукта в Couchdb, чтобы получить документы / соответствующие поля.

Спасибо, Герт-Ян

Ответы [ 2 ]

3 голосов
/ 06 декабря 2011

Для вашего случая использования, я бы сказал, что из моего опыта: я взломал некоторые аналитические данные в моей базе данных, которая сделала много $in запросов с тысячами идентификаторов, и это работало нормально (это был взлом).К моему удивлению, он работал довольно хорошо, в нижней миллисекундной области.

Конечно, это трудно сравнивать, и - как обычно - теория - плохой компаньон, когда дело доходит до производительности .Я думаю, что лучший способ понять это - перенести некоторые тестовые данные и отправить несколько запросов в систему.

Используйте превосходный встроенный профилировщик MongoDB, используйте $explain, помните один индекс на правило запроса, посмотрите журналы, следите за mongostat и сделайтенекоторые ориентиры.Это не должно занять слишком много времени и дать вам определенный и утвердительный ответ.Если ваши запросы оказываются медленными, у людей здесь и в группе новостей, возможно, есть идеи, как улучшить точный запрос или индексацию.

1 голос
/ 06 декабря 2011

Один индекс на запрос. Иногда думают, что запросы на несколько ключи могут использовать несколько индексов; это не так с MongoDB. Если у вас есть запрос, который выбирает несколько ключей, и вы хотите, чтобы запрос на эффективное использование индекса, то индекс составного ключа необходимо.

http://www.mongodb.org/display/DOCS/Indexing+Advice+and+FAQ#IndexingAdviceandFAQ-Oneindexperquery.

На этой странице также есть больше информации об индексах.

Суть в том, что Mongo будет хорошо, если ваши индексы находятся в памяти, а вы индексируете столбцы, которые хотите запросить, используя составные ключи. Если у вас плохая индексация, ваша производительность в результате пострадает. Это в значительной степени соответствует большинству систем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...