Comparação de vector databases com método simples: mesmo corpus de 1 milhão de documentos, mesmo conjunto de queries, mesma aplicação de RAG atrás de cada engine. Métricas: recall@10, latência p95 e horas de operação por sistema. Candidatos: pgvector, Qdrant e Pinecone.
pgvector: Postgres resolve até milhões de vetores
O pgvector roda dentro do PostgreSQL. Join SQL entre vetor e linha relacional sai de graça, índice HNSW performa bem até alguns milhões de vetores e sofre perto de 50M. IVFFlat existe como alternativa, mas HNSW ganhou em todos os cenários testados. Time que já opera Postgres adiciona zero infraestrutura: backup, replicação e monitoramento estão de pé.
Qdrant: filtros rápidos e memória sob controle
Engine escrita em Rust com as buscas filtradas mais velozes do grupo. Quantização scalar e binária encolhem consumo de memória de 4x a 32x, o que muda o sizing de máquina por completo. Funciona self-hosted ou no cloud gerenciado; o meio-termo entre controle e conveniência fica aqui.
Pinecone: simplicidade alugada
Serverless de ponta a ponta, nada para patchear, on-call que dorme a noite. A conta sobe com dimensão do vetor e throughput, e pico de tráfego dói. Time sem DevOps extrai valor do prêmio; time com infraestrutura própria sente ele todo mês.
Números em três portes
- 100k vetores: os três empateram acima de 0.95 de recall@10; latência nem entra como critério nesse porte
- 1M vetores: pgvector com HNSW (m=16, ef_construction=64) segurou p95 abaixo de 50ms; Qdrant com quantização scalar marcou ~30ms usando metade da RAM
- 20M vetores: pgvector exigiu tuning agressivo e partição por tenant; Qdrant seguiu estável; Pinecone escalou sem intervenção, com o maior custo mensal dos três
Como decidir
Time Postgres com menos de 10M vetores: pgvector. Filtragem pesada por metadata (tenant, permissão, data): Qdrant. Zero capacidade de DevOps: Pinecone. O resto é gosto.
A armadilha da migração
Embedding se prende ao modelo que o criou. Trocar de fornecedor obriga a re-embedar o corpus inteiro, e o custo maior nem é o computacional: recall muda, threshold pede recalibragem, evals re-rodam. Reserve budget para isso desde o dia um, inclusive no contrato com o fornecedor atual.
Curtiu o conteúdo?
Construo produtos web e soluções com IA do jeito certo — arquitetura sólida, código sustentável e entrega real.
Vamos conversar