Является ли MapReduce быстрее, чем создание карты и сокращение JS? - PullRequest
1 голос
/ 09 ноября 2011

Я использую MongoDB с Node.js.Есть ли какое-то преимущество в скорости использования MapReduce в Mongo, в отличие от получения полного набора результатов и создания карты и уменьшения JS самостоятельно?

Ответы [ 3 ]

4 голосов
/ 09 ноября 2011

Обычно нет никакого выигрыша в производительности для извлечения всего набора результатов и выполнения m / r-приложения.На самом деле, почти во всех ситуациях создание полного набора результатов в памяти на сервере вашего узла является особенно плохой идеей.

Выполнение сопоставления / уменьшения на MongoDB гарантирует, что пропускная способность между базой данных и вашим сервером приложений не будет потрачена впустую.при получении набора результатов и записи результатов вашего m / r.Карта / уменьшение MongoDB также может быть легко увеличена.

TL; DR: всегда делайте это в MongoDB

1 голос
/ 09 ноября 2011

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

0 голосов
/ 09 ноября 2011

Фактическая передача данных может быть дорогостоящей и длительной.Представьте, что каждый раз, когда вы хотите провести инвентаризацию, вы отправляете все свои вещи на другой склад.

Также вы должны учитывать, как все будет масштабироваться.

  • При использовании mongodb вам обычно требуется хотя бы одна реплика для ваших данных, что повысит производительность для задач на основе чтения.
  • С узлом вам, вероятно, не потребуется добавлять второй сервер дляхорошо из-за того, как хорошо он масштабируется.Добавление к ней интенсивной задачи может привести к необходимости увеличить количество серверов узлов, обращенных наружу.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...