В прошлом уроке мы увидели, где реляционной модели тяжело: масштаб, гибкая схема, длинные цепочки связей. В ответ появились базы, которые объединяют общим словом NoSQL. Слово говорит только о том, чего эти базы не делают, а не о том, что они умеют. На деле это четыре разных семейства с разными сильными сторонами. Две из этих моделей ты уже встречал в уроке про модели данных, теперь разберём все четыре.
Инструменты в мастерской
Аналогия: мастерская. Молоток, отвёртка, пила и дрель. Любым из них можно в крайнем случае забить гвоздь, но каждый хорош для своей работы. Реляционная база это хороший универсальный набор инструментов. NoSQL-базы это специализированные инструменты: каждая делает одну работу быстрее и проще, а на чужой работе неуклюжа.
Для каждого семейства ответим на три вопроса: как устроены данные, какой запрос модель делает лучше всех, и где ей больно.
Ключ-значение
Хранилище ключ-значение устроено как гардероб: сдаёшь пальто, получаешь номерок. По номерку пальто выдают мгновенно. Спросить «дайте все синие пальто» нельзя: гардеробщик знает только номерки.
session:9f2a → {"user_id": 42, "expires": "2026-10-09T18:00"}
cart:42 → ["sku-1", "sku-7"]
rate:ip:1.2.3.4 → 17
Пример: Redis. Он держит данные в оперативной памяти и отвечает за доли миллисекунды.
- Сильный запрос: получить или записать значение по точному ключу.
- Где больно: поиск по содержимому, связи между записями, отчёты.
- Типичная работа: кэш, сессии, счётчики, очереди, ограничение частоты запросов.
Подробнее про Redis и его структуры данных в уроке о Redis и ClickHouse.
Документы
Документная база хранит карточку целиком, со всем вложенным внутри. Мы встречали её в уроке о моделях данных.
{
"_id": "sku-7",
"title": "Ноутбук",
"specs": { "cpu": "M4", "screen": 14 },
"reviews": [{ "author": "Аня", "stars": 5 }]
}
Пример: MongoDB. У ноутбука поля cpu и screen, у футболки size и color, и обе карточки спокойно живут в одной коллекции без сотни пустых колонок.
- Сильный запрос: прочитать или записать объект целиком за одно обращение; искать по полям внутри документа.
- Где больно: связи «многие ко многим» и данные, которые нужно менять в нескольких документах сразу. Общие данные легко задублировать, и они разъедутся.
- Типичная работа: каталоги с разнородными товарами, профили, контент, события.
дальше после входа
Урок целиком открыт всем, кто вошёл. Войди по своему email, чтобы читать дальше.
Вход пока по приглашению. Если хочешь учиться, напиши Vassiliy.