sergeypid
@sergeypid

MongoDB для агрегации данных

Кто имеет опыт работы с объемными базами на MongoDB, подскажите пожалуйста, насколько она предназначена или не предназначена (быстро или медленно считает) для расчета сумм, средних и т.п., что на SQL можно выразить как SELECT SUM(X) FROM T WHERE Y > 10 AND Z < 100

Хранение в json/bson вроде не намекает на производительность таких операций, но возможность кластеризации и хранения больших объемов MongoDB очень подкупает…
  • Вопрос задан
  • 6095 просмотров
Пригласить эксперта
Ответы на вопрос 3
GearHead
@GearHead
Fullstack разработчик и предприниматель
Map/Reduce — одно из главных направлений развития MongoDB, производительность её на таких операциях (если всё сделано грамотно) гораздо выше, чем на MySQL. однако не стоит по одному этому поводу сразу бросаться её использовать. у mongo оочень много подводных камней, о которых вы никогда не задумывались в MySQL, как то: агрессивное кеширование всего data-set'а (нет смысла запускать mongo с большим набором данных, если там крутится ещё что-то кроме монго) и global write lock (монго в общем-то создана для быстрого чтения, но вставка в ней — ад и ужас)
Ответ написан
@TimTowdy
Считает не быстро, ибо считать это всё будет однопоточный джаваскрипт. К тому же агрегация в монго обычно не рассчитана на realtime. Если нужна агрегация и кластеризация, смотрите в сторону column-oriented dbms или hadoop. Либо оставайтесь на SQL и не мучайтесь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы