Benchmarks published by vector database vendors agree on one thing: their own product wins. We ran 510 million 1536-dimensional embeddings through three engines on identical hardware to find out what happens under real recall and real concurrency.

Recall is the axis that matters

Every engine can be made fast by lowering recall. The only comparison worth running holds recall@10 fixed — we chose 0.95 — and measures the latency and memory each engine needs to sustain it.

What the numbers showed

pgvector with HNSW held p99 latency under 40ms at our recall target and had the enormous operational advantage of being the database we already ran. Qdrant was consistently faster at high concurrency and its filtering story is genuinely better. Pinecone removed the operational burden entirely, at a cost that scaled uncomfortably with our index size.

  • pgvector: best choice when the vectors live near relational data you already query.
  • Qdrant: best filtered-search performance and the most predictable memory profile.
  • Pinecone: fastest to production, most expensive at 500M+ vectors.

Index rebuild is the hidden cost

All three engines degrade under heavy update load, and all three need periodic rebuilds. Budget for the rebuild window before you choose — it is the operational characteristic that will actually wake you up at night.