Недавно при прохождении собеседования задали вопрос: Что лучше, SQL или NoSQL?
Ответ: Ничего не лучше, это просто разные инструменты для решения разных задач.
Postgres - популярное и проверенное решение, обкатанное во многих больших компаниях (да-да, ваши резюме, балансы счетов, какие-нибудь опционы и много всего ещё лежит именно в этой БД), оно отлично подходит для тех ситуаций, когда хочется надежности.
В то же время, в некоторых проектах в любой момент может прийти менежер со словами: "ещё вчера нам нужно было добавить 1 поле, сегодня уже 3 и всё это очень срочно". В таких условиях приходится либо плодить бесконечные миграции, либо ... да нет, миграции.
Именно здесь на сцену выходят MongoDB и подобные schemaless-решения (строго говоря, она хранит документы с динамически модифицируемой структурой). Хотите быстро добавить поле? Хотите работать с полем, которое добавили час назад и которого в 95% документов вообще нет? Да пофигу, я могу это всё на лету.
В то же время, есть какие-то сервисы, которым только и надо, что инкрементировать какой-то счетчик и здесь разворачивать любую из вышеозначенных СУБД - всё равно что формировать детскую песочницу ядерным взрывом, несколько избыточно. Здесь блистают Redis-ы и прочие key-value хранилища.
Я это всё к чему говорю. Не бывает лучше или хуже. Бывает разная степень полезности в конкретной ситуации.
В связи с этим хочется показать прекрасный доклад Олега Бартунова (астроном, научный сотрудник МГУ, немного скалолаз и вообще крутой дядька, ещё руководит компанией с названием Postgres Professional):
Сам доклад, на самом деле, несколько противоречит вышеозначенному тезису и продвигает мысль о том, что надо использовать Postgres везде, в т.ч. переезжать в него из NoSQL. Но пока мы сделаем скидку на то, что докладчик несколько аффилирован с инструментом и поделим убедительность на полтора.
В целом, из видео Вы узнаете:
- насколько PostgreSQL гибкий
- почему key-value можно впихивать прямо в него и при чем тут термин hstore
- будут хорошие бенчмарки, в которых postgres всех уделает совершенно по делу (по моему опыту mongo не может в настоящий хайлоад)
Будет ещё всякое такое, что уже отъезжает от названия этой заметки и потому предлагаю ознакомиться самостоятельно.
Comments
comments powered by Disqus