Выбор БД: MySQL vs MongoDB?

Имеется скрипт PHP/MySQL. К нему обращается приложение запрашивая данные. Обращаются часто… Поэтому есть желание использовать PHPDaemon и рассылать сообщения в эти приложения по мере их поступления. Для этого внутри скрипта планирую складывать эти сообщения в отдельную таблицу (получается очередь) и затем уже из PHPDaemon'а читать эту таблицу с периодичностью раз в секунду, рассылая сообщения. И вот тут возникают вопрос: на оф. сайте PHPDaemon'а рекомендовали MongoDB. Она производительнее MySQL вроде как. Но стоит ли мне ради этого добавлять еще одного демона (MongoDB) в систему и внутри скрипта работать уже не с одной, а с двумя БД? Может быть просто использовать тот же самый MySQL?


Очередь вряд ли будет успевать раздуваться хотя бы до нескольких десятков сообщений. Хотя и MySQL достаточно активно используется на данный момент.
  • Вопрос задан
  • 20174 просмотра
Решения вопроса 1
inlanger
@inlanger
Django программист
А насколько вообще сложная схема данных? Может вообще использовать простое key-value хранилище типа Redis?
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
m_klyushkov
@m_klyushkov
Инженер
Если MySQL справляется, то зачем что-то менять? Настроенная MySQL будет работать лучше, чем MongoDB с настройками по-умолчанию.
Ответ написан
Насколько мне известно MySQL производительнее MongoDB на простых структурах данных. Смысл в MongoDB только в бессхемности на уровне БД, что правда не отменяет некоторое подобие схем на уровне приложения. И иногда это может работать шустрее RDBMS.

Если запись в таблицы будет происходить часто и в больших объемах или потребуется хороший механизм транзакций, то я бы посмотрел на PostgreSQL.
Ответ написан
aprenoir
@aprenoir
программный архитектор
Если не HighLoad, то остановите свой выбор на классическом MySQL. А из плюсов MongoDB отмечу, что она поддерживает горизонтальное масштабирование (шардинг) и балансировку нагрузки на уровне базы.

Переезжать на MondoDB есть смысл, если у Вас уже как минимум отдельный сервер под базу. Она намного прожорливее MySQL.
Ответ написан
Комментировать
Express777
@Express777
10 сообщений? Епта, зачем вам редис. Зачем поднимать отдельный сервис, настраивать его. Создайте таблицу в MySQL с подсистемой хранения Memory, которая так же хранить данные в оперативной памяти и из за этого работает сверхбыстро. И читайте, записывайте отттуда.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы