Статистика в реальном времени: MySQL (/ Drizzle) или MongoDB?

Мы работаем над проектом, который будет включать статистику некоторых действий (например, кликов) в режиме реального времени. При каждом щелчке мы будем регистрировать такую ​​информацию, как дата, возраст и пол (они поступают из Facebook), местоположение и т. Д.

Мы обсуждаем лучшее место для хранения этой информации и использования ее для статистики в реальном времени. Мы будем отображать совокупную статистику: например, количество кликов, количество кликов, сделанных мужчинами / женщинами, количество кликов, разделенное по возрастным группам (например, 18-24, 24-30 ...).

Поскольку на сайте мы везде используем MongoDB, мой коллега подумал, что мы также должны хранить в нем статистику. Я, однако, предпочел бы для этой задачи базу данных на основе SQL, такую ​​как MySQL (или, может быть, Drizzle), потому что я считаю, что SQL лучше при выполнении таких операций, как агрегирование данных. Хотя есть накладные расходы на синтаксический анализ SQL, я думаю, что MySQL / Drizzle может быть здесь быстрее, чем базы данных без SQL. И вставки тоже не медленные при использовании запросов INSERT DELAYED.

Обратите внимание, что нам не нужно выполнять JOINS или собирать данные из нескольких таблиц / коллекций. Таким образом, нам все равно, отличается ли база данных. Однако мы заботимся о масштабируемости и надежности. Мы создаем что-то, что (надеюсь) станет очень большим, и мы разработали каждую строчку кода с учетом масштабируемости.

Что вы думаете об этом? Есть ли причина предпочесть MongoDB MySQL / Drizzle для этого? Или все равно? Какой бы вы использовали, если бы вы были нами?

Спасибо, Alessandro

14
задан Chintan Pathak 3 March 2014 в 08:34
поделиться