Карта / NoSQL (Redis, Mongo) / Типы NoSQL-хранилищ

Типы NoSQL-хранилищ

NoSQL — не один тип баз, а целое семейство с разной внутренней моделью данных. Выбор зависит от того, какие данные и как нужно хранить и запрашивать.

ТипХранит какПримерыКогда используют
Key-Valueпара ключ → значениеRedis, DynamoDBкэш, сессии, простой быстрый доступ по ключу
ДокументнаяJSON-подобные документыMongoDBгибкая структура данных, вложенные объекты
Колоночнаяданные по столбцам, не строкамCassandraогромные объёмы, аналитика, запись больше чтения
Графоваяузлы и связи между нимиNeo4jсоциальные связи, рекомендации, сложные взаимосвязи
Копнуть глубже

Почему колоночные базы хороши для аналитики. Если запрос читает только пару столбцов из таблицы с десятками столбцов (SELECT AVG(age) FROM users), колоночное хранение читает с диска только нужные столбцы, а не все строки целиком — для аналитических запросов по огромным объёмам данных это даёт огромный выигрыш в скорости по сравнению со строковым (как у обычных SQL-баз) хранением.

Графовые базы решают задачи, которые в SQL требуют дорогих многократных JOIN. «Друзья друзей моих друзей» — в реляционной базе это несколько вложенных JOIN, которые становятся очень медленными на глубине больше 2-3 уровней. В графовой базе это естественная операция — прохождение по связям узлов, и она остаётся быстрой даже на большой глубине.

Выбор типа NoSQL — это выбор под конкретную форму данных и характер запросов, а не “просто взять модный NoSQL вместо SQL”. Часто в одном приложении используют несколько типов баз одновременно — Redis для кэша, MongoDB для гибких документов профиля пользователя, обычный PostgreSQL для транзакционных данных заказов.

🎤 Закрыл тему, если можешь объяснить:
• четыре основных типа NoSQL и по примеру на каждый;
• почему колоночные базы хороши для аналитики, а графовые — для связей (если дошёл до 2-го слоя).