Зачем используется две бд PostgresSQL и MongoDB/Redis?

Расскажите пожалуйста человеку, который до этого работал со стеком LAMP и не парился. Зачем две бд? Одна для больших данных, другая для "быстрых"?
  • Вопрос задан
  • 1073 просмотра
Решения вопроса 1
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
Реляционная БД хорошо себя показывает для целостности данных, хорошая и крепкая структура... но есть минус — когда много связей и таблицы глубокие, то приходится делать очень большые и сложны запросы, некоторые могут выполняться долго...

Тогда делают денормализацию данных — объединяют несколько таблиц в один документ, например в документе с товаром будут сразу и варианты с ценами, и изображения и категория и комментарии, тогда при запросе этого документа по id идет 1 запрос и данные быстро отдаются.

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

Также Редис используют для хранения в нем сессий https://habrahabr.ru/post/318836/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@InoMono
Для разных целей - свои плюсы минусы. Если для ваших нагрузок хорош MySQL - то и не забивайте себе голову.

С Монгой или Постгресом сайт ваш не станет сам себя создавать все равно. А вот лишнего гемору много.

Ситуации когда этот лишний гемор того стоит - в этих двух видео прекрасно на свои места расставляется.

https://junior.highload.ru/2016/abstracts/2075.html

https://youtu.be/SNzOZKvFZ68

Если у вас не ХайЛоад с распределением базы на десятки и больше серверов кластера - вам вполне достаточно РСУБД (MySQL, Postgres). И никаких проблем с консистентностью.
Если хочется schemaless решение чтобы с миграциями не париться - то обратите внимание на JSONB в Postgres. Автор доклада на Хайлоад про это все тот же О.Бартунов.
Вполне может что вам понадобится БД работающая с БД в памяти - Redis, Tarantool, Aerospike.
Но Монго - это хорошо для кластеров.
Ответ написан
Ваш ответ на вопрос

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

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