NoSQL vs SQL: як обрати правильно
Розбираємо критерії вибору моделі даних під конкретну задачу.

NoSQL vs SQL: як обрати правильно
Питання не в моді, а у формі даних
Вибір між SQL і NoSQL варто починати не з хайпу навколо технології, а з форми даних і характеру запитів до них. Реляційна модель чудово підходить, коли дані структуровані, зв'язки між сутностями важливі, а узгодженість (у дусі ACID) критична — фінансові операції, бухгалтерія, замовлення з численними пов'язаними сутностями. Детальніше про суміжний підхід можна прочитати в матеріалі «Реплікація і відмовостійкість у PostgreSQL».

Коли NoSQL справді виграє
Документні бази на кшталт MongoDB зручні, коли структура даних гнучка і часто змінюється, а типовий запит — отримати цілком один документ, а не збирати його з кількох пов'язаних таблиць. Key-value сховища (Redis) незамінні для кешу й даних із простим доступом за ключем. Графові бази (Neo4j) розкриваються там, де самі зв'язки між сутностями — головний об'єкт інтересу, наприклад у рекомендаційних системах.
На практиці зрілі системи рідко обмежуються однією моделлю даних: реляційна база для основної бізнес-логіки чудово уживається поряд із Redis для кешу та Elasticsearch для повнотекстового пошуку — це називають polyglot persistence, і це радше норма, ніж виняток. Ці ідеї перегукуються з темами «Оптимізація N+1 запитів в ORM» та «Property-based тестування на практиці».
Схожі матеріали
ACID vs BASE: різні моделі узгодженості
Розбираємо «aCID vs BASE: різні моделі узгодженості» на практичних прикладах і типових помилках при роботі з даними.
Блокування в PostgreSQL: deadlock і як їх уникнути
Розбираємо «блокування в PostgreSQL: deadlock і як їх уникнути» на практичних прикладах і типових помилках при роботі з даними.
CAP-теорема простими словами
Розбираємо «cAP-теорема простими словами» на практичних прикладах і типових помилках при роботі з даними.