Все статьи
обновлено 9 мин

Vector databases для RAG: Weaviate vs Qdrant vs Milvus vs pgvector

Сравнение четырёх векторных БД для корпоративного RAG в 2026: производительность, простота, масштабирование, hybrid search. С реальными числами на 1M-100M векторах.

vector-databaseweaviateqdrantmilvuspgvectorself-hosted-aiagmind

Векторная база данных — это специализированное хранилище, которое ищет по смыслу, а не по ключевому слову: индексирует числовые эмбеддинги и возвращает ближайшие по cosine similarity. В 2026 году у self-hosted RAG-команд четыре практических варианта — Weaviate, Qdrant, Milvus и pgvector, — каждый со своим профилем производительности и операционной сложности.

Этот текст — реальное сравнение на корпоративных RAG-задачах с измерениями производительности, требований к ресурсам, и рекомендациями под конкретные сценарии.

Что должна делать векторная БД для RAG

Базовые требования:

  1. Векторный поиск — по cosine similarity / dot product / euclidean distance
  2. Метаданные — фильтрация по дополнительным полям (дата, автор, тип документа)
  3. Hybrid search — комбинация векторного и ключевого (BM25) поиска
  4. Масштабирование — от 100K до 100M векторов
  5. Производительность — query latency < 50ms на десятках миллионов векторов
  6. Backup/restore — на случай сбоев
  7. Многопользовательский доступ — RBAC, изоляция коллекций

Все четыре кандидата покрывают 1-3 базово, но различаются на 4-7.

Weaviate

Что: open-source vector DB с фокусом на developer experience и встроенные ML-фичи.

Сильные стороны:

  • Hybrid search out-of-the-box — vector + BM25 в одном запросе с настраиваемым alpha-коэффициентом
  • Schema-aware — типизированные коллекции с полями, валидацией, реляциями
  • GraphQL API + REST — гибкий интерфейс для frontend
  • Module system — встроенные интеграции для embedders, reranker, generative AI
  • Multi-tenancy — встроенная поддержка для SaaS-приложений
  • Backup на S3 — стандартный путь
  • Apache 2.0 лицензия

Слабые стороны:

  • Тяжелее в памяти чем Qdrant (на тех же объёмах)
  • GraphQL не всем нравится
  • Cluster setup требует Kubernetes для production

Когда брать:

  • Production-grade RAG-системы
  • Когда нужен hybrid search и multi-tenancy
  • Команда комфортна с GraphQL или готова использовать REST
  • Корпоративные приложения с complex schema

Qdrant

Что: vector DB на Rust, фокус на производительность и эффективность ресурсов.

Сильные стороны:

  • Самая быстрая в чистом vector search — в 1.5-2x быстрее Weaviate на benchmarks
  • Эффективнее по памяти — на тех же 10M векторов использует 40-50% меньше RAM
  • gRPC + REST — высокопроизводительный интерфейс
  • Filtering — продвинутая фильтрация по метаданным с индексами
  • Snapshots — встроенный backup механизм
  • Apache 2.0 лицензия

Слабые стороны:

  • Hybrid search требует доп. интеграции (нет встроенного BM25)
  • Меньше встроенных ML-фич чем Weaviate
  • Schema менее формализована

Когда брать:

  • Real-time поиск с очень низкой latency (< 20ms)
  • Большие объёмы (10M+ векторов)
  • Когда экономия памяти критична
  • Простые use-case’ы без сложной schema

Milvus

Что: distributed vector DB от Zilliz. Industrial-strength для очень больших объёмов.

Сильные стороны:

  • Лучшее масштабирование — distributed-architecture для миллиардов векторов
  • Множество индексов — HNSW, IVF, FLAT, DISKANN — оптимизация под разные сценарии
  • GPU acceleration — для massive-scale поиска
  • Multi-replica и sharding — для high-availability
  • Apache 2.0 лицензия

Слабые стороны:

  • Сложнее в развёртывании (Kubernetes practically required)
  • Overkill для большинства корпоративных кейсов (< 10M векторов)
  • Outback в Python/Go SDK уступает Weaviate/Qdrant

Когда брать:

  • Very large scale (100M+ векторов)
  • Distributed deployment с автоматическим sharding
  • Команда с DevOps опытом

pgvector

Что: extension для PostgreSQL. Не отдельная БД, а векторный поиск внутри обычной Postgres.

Сильные стороны:

  • Уже есть PostgreSQL — никакого нового сервиса
  • Транзакции и SQL — atomic операции с векторами и обычными данными
  • Известная operational модель — все знают как обслуживать Postgres
  • Простота — для прототипов разворачивается за минуты
  • PostgreSQL License (BSD-like)

Слабые стороны:

  • Производительность хуже специализированных БД на больших объёмах (5-10x медленнее на 10M+ векторов)
  • Лимиты HNSW в pgvector хуже стандартных
  • Нет встроенного BM25 (доступно через ts_vector в Postgres, но менее оптимизированно)
  • Не masштабируется для very large scale

Когда брать:

  • Прототипы и MVP
  • Малые объёмы (< 1M векторов)
  • Когда уже есть Postgres-инфраструктура и не хочется добавлять новый сервис

Сравнение производительности

Публичный проект VectorDBBench от Zilliz регулярно публикует воспроизводимые бенчмарки специализированных векторных БД на различных датасетах. Результаты варьируются в зависимости от размерности векторов, объёма коллекции и железа, поэтому ниже — качественная картина, актуальная в 2026 году:

  • Qdrant стабильно показывает наименьшую latency и наименьший расход памяти на единицу векторов среди dedicated-движков — преимущество Rust-реализации HNSW.
  • Weaviate близок к Qdrant по latency на средних объёмах (1-10M), при этом выигрывает встроенным hybrid search, что экономит отдельный BM25-сервис.
  • Milvus берёт масштабом: distributed-архитектура с GPU-acceleration даёт преимущество при 100M+ векторов; на меньших объёмах операционная сложность не окупается.
  • pgvector в разы медленнее специализированных движков на коллекциях от 5M+ векторов — это расплата за работу внутри Postgres без выделенного HNSW-сервера.

Актуальные цифры на разных датасетах и железе — на странице результатов VectorDBBench и ANN-Benchmarks.

Реальные сценарии

Сценарий 1: средняя корпоративная RAG-система (1M векторов)

Рекомендация: Weaviate

  • Достаточно производительности для 1M
  • Hybrid search встроен — экономит время разработки
  • Schema-aware упрощает работу с метаданными
  • Production-ready без дополнительных интеграций

Сценарий 2: real-time customer-facing поиск (5M векторов)

Рекомендация: Qdrant

  • Низкая latency критична
  • Memory эффективность позволяет уместиться в одну ноду
  • Простота API
  • Hybrid search через дополнительный BM25-сервис

Сценарий 3: enterprise data lake с миллиардами векторов

Рекомендация: Milvus

  • Distributed-architecture для масштаба
  • GPU acceleration на больших объёмах
  • Готов к multi-DC deployment

Сценарий 4: прототип / proof-of-concept

Рекомендация: pgvector

  • Если есть Postgres — нулевая нагрузка
  • Быстрый старт
  • Достаточно для < 100K векторов

Hybrid search: важная деталь

В RAG hybrid search (vector + keyword) даёт +5-15% recall. Это особенно важно на запросах с конкретными именами/числами/кодами, где чистый embedder может промахнуться.

Поддержка hybrid:

  • Weaviate: ✅ встроенный BM25 + vector с настраиваемым alpha
  • Qdrant: ⚠️ через дополнительный сервис (Elasticsearch/Tantivy)
  • Milvus: ⚠️ через дополнительный сервис
  • pgvector: ⚠️ через ts_vector (медленнее специализированных)

Для большинства корпоративных RAG hybrid search обязателен — это аргумент в пользу Weaviate.

Stack рекомендация для AGmind

Дефолт в AGmind: Weaviate.

Причины:

  1. Hybrid search встроенный — не нужно ставить отдельный Elasticsearch
  2. Schema позволяет хорошо организовать корпоративные коллекции (юристы / продажники / поддержка — отдельные tenants)
  3. Backup на S3 интегрирован
  4. Sufficient производительности для 1-10M векторов на одной ноде

Альтернативы: для специфических кейсов могут быть оправданы:

  • Qdrant — если real-time latency критична
  • Milvus — для распределённого deployment >100M векторов
  • pgvector — для пилотов и небольших проектов

Грабли при работе с vector DB

1. Размерность вектора фиксируется при создании коллекции. Поменять с 1024 на 768 без переindex’а нельзя.

2. HNSW параметры влияют на качество. ef_construction, M, ef_search — от их настройки зависит точность поиска. Стандартные defaults (M=16, ef=128) дают приличный baseline, но для production нужен tuning.

3. Метаданные раздувают БД. Если в каждом векторе хранить много полей (full text, JSON metadata) — объём диска быстро растёт. Стратегия: только поля для фильтрации в DB, полный текст в отдельном S3.

4. Memory mapping vs in-memory. Все четыре БД могут работать в обоих режимах. In-memory быстрее но требует RAM. Memory-mapped — медленнее но позволяет работать с базой больше RAM.

5. Backup стратегия. Vector DB без backup’а = потеря базы при сбое = пересчёт всех эмбеддингов = часы downtime. Регулярные snapshot’ы обязательны.

Стоимость владения

Для команды 30 человек, 5M векторов в RAG:

ПараметрWeaviateQdrantMilvuspgvector
Дополнительный сервис нужен?Да (Weaviate)Да (Qdrant)Да (Milvus + etcd + Pulsar)Нет (Postgres уже есть)
RAM для базы12 GB7 GB14 GB18 GB
Disk50 GB35 GB60 GB80 GB
Operational complexityСредняяНизкаяВысокаяНизкая

В реальной AGmind инфраструктуре vector DB занимает 15-20% общего ресурса GPU-сервера.

Что часто упускают

1. Reindex дорого. При смене эмбеддера или существенных изменений schema нужно переcчитать все векторы. На 10M документах это 12-24 часа GPU-времени.

2. Cold start vs warm. После рестарта БД может тратить минуты на загрузку индексов в RAM. Для production важно warmup-strategy.

3. Multi-tenancy — отдельная задача. Если разные отделы должны видеть только свои данные — это нужно архитектурно поддержать, не «потом добавим».

4. Network latency. Vector DB на отдельной machine от LLM-сервера = +5-15ms на каждый запрос. Лучше collocate если возможно.

Итог

Выбор vector DB определяется масштабом, требованиями к latency и нужностью hybrid search:

  • 1-10M векторов с hybrid search: Weaviate (дефолт для AGmind)
  • 5-50M, фокус на скорость: Qdrant
  • 50M+, distributed: Milvus
  • <1M, пилоты: pgvector

В AGmind мы стандартно ставим Weaviate. Для специальных кейсов можем перейти на другую БД на этапе аудита.

Связанные тексты: архитектура AI-помощника, embedding модели для русского, реранкеры, RAG объяснение.