Vector Databases Comparison Cheat Sheet

Comparing vector databases — Pinecone vs Weaviate vs Qdrant vs Milvus vs Chroma.

Last Updated: May 1, 2025

Comparison Matrix

FeaturePineconeWeaviateQdrantMilvusChroma
DeploymentCloud-onlyCloud + Self-hostedCloud + Self-hostedSelf-hosted (Zilliz Cloud)Embedded + Client-Server
LicenseProprietaryBSD-3Apache 2.0Apache 2.0Apache 2.0
Index AlgorithmCustom (pod-based)HNSW + FlatHNSW11 index types (IVF, HNSW, etc.)HNSW
FilteringMetadata onlyGraphQL + Vector hybridPayload filteringScalar filteringMetadata filtering
Max VectorsBillionsBillionsBillionsBillionsMillions
Pricing$0.33/GB + pod feesFree self-hosted, cloud per-queryFree self-hosted, cloud per-nodeFree (Zilliz cloud per-CU)Free
Best ForManaged, zero-ops, fast setupHybrid search (vector+keyword)Performance, filtering, on-premMassive scale, 11 index optionsPrototyping, local dev, simplicity

When to Choose Each

ItemDescription
PineconeFastest time to production. No infrastructure management. Good free tier. Best for teams that don't want to manage infra.
WeaviateBest hybrid search (BM25+vector). GraphQL-native. Good when you need keyword+semantic search in one query.
QdrantBest self-hosted performance. Excellent filtering. Rust-based — very fast. Best for latency-sensitive on-prem deployments.
MilvusBest for billion-scale. 11 index types for fine-tuning. GPU-accelerated. Best for research and extreme scale.
ChromaSimplest API. Embedded mode for prototyping. Best getting-started experience. Upgrade when you outgrow it.

Key Concepts

ItemDescription
HNSWHierarchical Navigable Small World — most common index. Fast queries, moderate memory. O(log N) search.
ANN vs KNNApproximate Nearest Neighbor (fast, ~95% accurate) vs K-Nearest Neighbors (slow, 100% accurate).
Cosine SimilarityMost common distance metric for embeddings. Range: -1 to 1. 1 = identical direction.
Euclidean DistanceStraight-line distance. Sensitive to magnitude. Use when vector magnitude matters.
Dot ProductSometimes used with normalized vectors. Faster than cosine. Range depends on vector norms.
Payload/FilteringAttach metadata to vectors — filter by category, date, user before vector search.

Performance Tips

ItemDescription
Dimension MattersHigher dimensions = more memory, slower search. 768-1536 is sweet spot for most models.
Batch InsertsUpload vectors in batches of 100-1000 — dramatically faster than single inserts.
Index Build TimeBuild index after bulk insert, not during. Pinecone auto-indexes, self-hosted needs manual trigger.
ef_construction / MHNSW parameters: higher = better recall, more memory, slower build. Trade off for your use case.
Pro Tip: For prototypes and small projects, start with Chroma (zero setup). For production at scale, Pinecone (managed, no-ops) or Qdrant (best self-hosted performance). Milvus wins on raw speed for billion-scale.