Имеется скрипт PHP/MySQL. К нему обращается приложение запрашивая данные. Обращаются часто… Поэтому есть желание использовать PHPDaemon и рассылать сообщения в эти приложения по мере их поступления. Для этого внутри скрипта планирую складывать эти сообщения в отдельную таблицу (получается очередь) и затем уже из PHPDaemon'а читать эту таблицу с периодичностью раз в секунду, рассылая сообщения. И вот тут возникают вопрос: на оф. сайте PHPDaemon'а рекомендовали MongoDB. Она производительнее MySQL вроде как. Но стоит ли мне ради этого добавлять еще одного демона (MongoDB) в систему и внутри скрипта работать уже не с одной, а с двумя БД? Может быть просто использовать тот же самый MySQL?
Очередь вряд ли будет успевать раздуваться хотя бы до нескольких десятков сообщений. Хотя и MySQL достаточно активно используется на данный момент.
Не совсем key-value: id пользователя кому отправлять и непосредственно данные сообщения (строка). То есть, id может быть неуникальным. Но про Redis почитаю, спасибо.
Redis — совсем не простое key-value хранилище. Оно поддерживает более сложные структуры данных, такие как хеши и списки. Насколько я понял условия, оно как раз очень хорошо подойдет для задачи (при этом будет, скорее всего быстрее Mongo). Как-то так:
Насколько мне известно MySQL производительнее MongoDB на простых структурах данных. Смысл в MongoDB только в бессхемности на уровне БД, что правда не отменяет некоторое подобие схем на уровне приложения. И иногда это может работать шустрее RDBMS.
Если запись в таблицы будет происходить часто и в больших объемах или потребуется хороший механизм транзакций, то я бы посмотрел на PostgreSQL.
Вообще то MongoDB просто разрывает по скорости записи как MySQL, так и PostgreSQL. Статей на хабре с реальными результатами тестов полно, так же есть compare list на самом майте MongoDB
Если не HighLoad, то остановите свой выбор на классическом MySQL. А из плюсов MongoDB отмечу, что она поддерживает горизонтальное масштабирование (шардинг) и балансировку нагрузки на уровне базы.
Переезжать на MondoDB есть смысл, если у Вас уже как минимум отдельный сервер под базу. Она намного прожорливее MySQL.
10 сообщений? Епта, зачем вам редис. Зачем поднимать отдельный сервис, настраивать его. Создайте таблицу в MySQL с подсистемой хранения Memory, которая так же хранить данные в оперативной памяти и из за этого работает сверхбыстро. И читайте, записывайте отттуда.