03 / 25 · §2

Классы баз данных

Не сравнивай «MySQL vs Redis» — они решают разные задачи. Мысли классами.

Схема: Классы баз данных
Нажми на схему, чтобы открыть в полном размере.

Главное

  • Relational (PostgreSQL, MySQL) — пользователи, платежи, заказы, связи. Default для нового проекта: Postgres.
  • Key-value (Redis) — кэш, сессии, rate limit, счётчики, блокировки. Обычно не замена Postgres.
  • Document (MongoDB) — когда данные естественно документные, а структура гибкая.
  • OLAP (ClickHouse) — аналитика по миллиардам событий, логи, телеметрия.
  • Search (Elasticsearch / OpenSearch) — полнотекстовый поиск, автодополнение, логи.
  • Vector (pgvector, Qdrant, Pinecone) — поиск «по смыслу», основа RAG.

Два разных вопроса к данным

OLTP:  «какая подписка у юзера 123?»           → PostgreSQL
OLAP:  «4 млрд событий по странам за 90 дней»   → ClickHouse

Антипаттерн

«У нас JSON API → значит Mongo». Нет: Postgres хранит JSONB и даёт реляционную модель. Для небольшого RAG хватит PostgreSQL + pgvector.