Vector Database Comparison: Performance, Pricing & Scaling

Deploybase · July 7, 2025 · AI Tools

Contents


Vector Database Comparison: Overview

Vector database choice affects infrastructure cost, latency, and operational burden. Choose wrong and teams burn money on unnecessary complexity. Pick right and cost per query drops 10x while latency stays sub-100ms, as of March 2026.

The market split is clear. Pinecone runs fully managed SaaS (zero ops, highest cost). Weaviate and Qdrant sit in the middle: open-source with optional cloud hosting (moderate ops, moderate cost). Milvus targets massive scale with custom resource allocation (high ops, lowest cost at scale). ChromaDB emphasizes simplicity for development and small workloads (zero ops, negligible cost).

Picking between them depends on three variables: query throughput (QPS), latency requirements, and tolerance for operational complexity.


Quick Comparison Table

DatabaseModelLatency (p99)QPS CapacityBest ForOps Overhead
PineconeSaaS<100ms10K+Production APIs, no opsNone
WeaviateSelf-hosted / Cloud50-150ms5K+Enterprise, GraphQLMedium
QdrantSelf-hosted / Cloud30-100ms8K+Performance, cost balanceLow
MilvusSelf-hosted, Kubernetes20-200ms20K+Massive scale 100M+High
ChromaDBEmbedded / Standalone<50ms<1KDevelopment, prototypingNone

Latencies and throughput observed at 100K-10M vector scale. Production conditions vary by vector dimensionality, filter complexity, and metadata filtering overhead.


Pinecone: Fully Managed SaaS

Pinecone is a managed vector database. Pay monthly for indexed vectors and API call volume. No servers to run, no scaling decisions, no cluster management. Pinecone handles replication, failover, index maintenance, and upgrades.

Pricing and Economics

Pinecone uses serverless pricing as of 2024+. Pricing is based on reads, writes, and storage rather than fixed pod tiers.

Serverless pricing (March 2026):

  • Reads: $0.04 per 1M read units
  • Writes: $2.00 per 1M write units
  • Storage: $0.33 per GB per month

Example: 10M vector index (1536-dim, ~60GB) with 100M monthly queries

  • Storage: 60GB × $0.33 = $20/month
  • Reads: 100M / 1M × $0.04 = $4/month
  • Writes (initial load, amortized): ~$2/month
  • Total: ~$26/month

Example: 100M vector index with 1B monthly queries

  • Storage: ~600GB × $0.33 = $198/month
  • Reads: 1B / 1M × $0.04 = $40/month
  • Total: ~$240/month

Enterprise plans offer reserved capacity with predictable pricing for high-throughput workloads. Legacy pod-based pricing (s1, p1, p2 pods) is deprecated for new accounts.

Latency and Performance

Query latency targets <100ms p99. Typical p50 sits around 30-50ms. Throughput scales with pod tier.

Pinecone handles multi-region replication automatically. Query from any region, get local latency.

Setup Time and Complexity

Minimal. Spin up an index via UI or API. Push vectors via REST or Python SDK. Start querying. No infrastructure knowledge required.

That simplicity carries a cost premium: equivalent throughput on self-hosted Qdrant costs 40-60% less in infrastructure spend.

Best For

Startups, scaleups, and teams that prioritize velocity over cost. Worst for teams with massive query volume (>10B queries/month) where infrastructure costs become material. Teams already managing cloud infrastructure may find self-hosted options more economical.


Weaviate: Open-Source with Managed Option

Weaviate is open-source vector search (since 2018). Available self-hosted on Kubernetes/Docker or via Weaviate Cloud Service (WCS) managed offering.

Self-Hosted Deployment

Deploy on Kubernetes, Docker, or single VM. Full control over hardware and scaling.

Infrastructure cost: $0 for software. Hardware cost: 3-node Kubernetes cluster with 16GB memory per node runs $200-$300/month on AWS/GCP. Handles 50K-100K vectors at 5K QPS with sub-100ms latency.

Setup: Requires Kubernetes knowledge or Docker comfort. Networking, storage, monitoring, and backups fall on the team.

Weaviate Cloud Service (WCS)

Managed offering from Weaviate. Pricing: $15 to $2,000+/month depending on vector count and QPS.

Mid-tier cluster (10M vectors, 5K QPS): $300-500/month. That's 3-5x cheaper than Pinecone at equivalent scale.

Performance Characteristics

Vector similarity search: 50-100ms p99 latency on well-tuned deployments. Supports multiple distance metrics (L2, cosine, Hamming) and indexing algorithms (HNSW is default).

Query language: GraphQL. Teams either love or find unnecessarily complex.

Built-in filtering during vector search. Search vectors AND filter by metadata in a single query (no two-database-call overhead).

Best For

Teams with existing Kubernetes infrastructure or willingness to learn it. Cost-conscious but comfortable with managed services. Worst for teams needing fully managed with phone support.


Qdrant: Speed-First Design

Qdrant is vector search built for speed. Written in Rust, open-source, available self-hosted or via Qdrant Cloud.

Performance

Latency is consistently sub-100ms and often <50ms p99 even at high throughput. That speed comes from:

  • Rust's zero-overhead abstractions
  • Memory-optimized HNSW indexing
  • No-compromise implementation (no shortcuts for simplicity)

Benchmark: 1M vectors, L2 distance, single query = 40ms p99. Same setup on Weaviate = 60ms p99.

Self-Hosted Infrastructure

$0 for software. Cluster infrastructure cost depends on scale.

Small cluster (1M vectors, 2K QPS): single t3.large AWS instance ($50/month). Larger cluster (100M vectors, 10K QPS): 3-4 instances with better specs (~$300-500/month).

Qdrant Cloud Pricing

Free tier: 1GB storage. Paid tiers: $10-200+/month depending on cluster size and QPS.

10M-vector index at 5K QPS: ~$50-100/month on Qdrant Cloud (vs $530 on Pinecone p1).

Features

Full filtering support during search. Metadata can be numeric ranges, text matches, or categorical filters applied at query time.

Distributed deployment via REST API. Horizontal scaling possible but requires manual cluster orchestration (less turn-key than Pinecone).

Configuration tuning: higher barrier to entry than Pinecone, lower than Milvus. Teams need to understand HNSW parameters (ef construction, M), index sizes, quantization strategies.

Best For

Teams that need sub-100ms latency without running Kubernetes. Cost-conscious production deployments. Worst for teams needing fully managed clustering without operational input.


Milvus: Massive Scale

Milvus is open-source targeting massive scale. Built in C++ and Go, deployed on Kubernetes, designed for 100M+ vector workloads.

Infrastructure and Cost

$0 for software. Infrastructure cost scales with scale. Production Milvus cluster includes:

  • etcd for metadata
  • MinIO for storage
  • Message queue (Kafka or Pulsar)
  • Compute nodes for search

At 100M vectors with replication and HA: minimal cluster costs $1,000-2,000/month on cloud VMs.

That investment is justified at massive scale. Milvus handles 100M+ vectors across sharded indexes with predictable latency and easily reaches 20K+ QPS across multiple nodes.

Flexibility and Performance

Supports multiple indexing algorithms: HNSW, IVFFLAT, HNSW-SQ8 (quantized), IVF-SQ8H. Teams can trade off latency, memory, and accuracy by index type.

Query latency: 30ms p99 on single node (good). At 100M vectors distributed across shards, latency spreads 100-200ms p99 depending on topology.

Operational Overhead

High. Requires Kubernetes expertise. Milvus clusters need monitoring, backup strategies, scaling policies, operational runbooks. Not for teams focused on application logic.

Documentation exists but steep learning curve from demo to production.

Best For

Teams with existing Kubernetes infrastructure and massive scale (100M+ vectors). Teams needing custom indexing or tight resource control. Worst for small teams or those without Kubernetes operational experience.


ChromaDB: Simplicity for Development

ChromaDB is lightweight embedding database for development and small workloads. Designed to run embedded in Python applications or as standalone service.

Embedded Mode

$0 cost. Runs in-process in Python. No servers, no scaling concerns, no external dependencies.

Perfect for:

  • Local development and notebook experiments
  • Prototyping RAG systems
  • Small internal tools

Storage: persistent via SQLite or PostgreSQL backend. Filtering and metadata search work out of the box.

Standalone Service

Single container handles millions of embeddings at high latency (sub-50ms p99) up to a few thousand QPS.

Cost: single cheap cloud VM ($20-50/month on AWS t3.micro).

Features

API is Pythonic and low-friction for people in the Python ecosystem. Multimodal support added recently.

Limitations

Not designed for production at scale. Storage is uneconomical above 100M vectors. Query performance degrades fast under load compared to purpose-built databases.

Best For

Development, prototyping, and small-scale production (100K-10M vectors, <1K QPS). Worst for high-throughput serving or massive vector collections.


Performance Benchmarks

Latency Comparison (1M vectors, p99 percentile)

DatabaseSingle Query1K QPS Burst5K QPS Sustained
Pinecone50ms80ms100ms
Weaviate60ms100ms150ms
Qdrant40ms60ms90ms
Milvus30ms50ms80ms
ChromaDB20ms40ms150ms+

Benchmarks use 768-dim vectors (BERT embeddings), L2 distance, HNSW indexing, vanilla hardware (c5.2xlarge AWS or equivalent).

ChromaDB's sub-50ms single-query latency is misleading. Performance degrades catastrophically under load (not designed for production concurrency).

Throughput Capacity (10M vectors)

Databasep99 Latency at 10K QPSViable at 20K QPS
Pinecone100msYes (serverless, auto-scales)
Weaviate180ms+No (degrades)
Qdrant120msYes (3-4 nodes)
Milvus100msYes (sharded)
ChromaDB>500msNo

Query Performance Under Load

Weaviate at 5K QPS (10M vectors): Latency degrades to 150-180ms p99. Not ideal for interactive search requiring <100ms latency. Acceptable for background processing or batch operations.

Qdrant at 5K QPS: Maintains 90ms p99 latency. Predictable performance curve. Safe for production APIs with strict latency SLAs.

Milvus at 10K QPS: Achieves 100ms p99 latency with sharding. Requires cluster tuning and monitoring, but predictable at scale.

Pinecone at 10K QPS: Maintains 100ms p99 on serverless infrastructure. Automatic scaling handles spikes without manual tier selection.


Deployment Architecture Patterns

Pinecone Architecture

Fully managed SaaS. Regional deployments (us-west-1, eu-west-1, etc.). Automatic replication and failover. Zero operational responsibility. Trade-off: locked into Pinecone's infrastructure and pricing model.

Weaviate Architecture

Self-hosted on Kubernetes, Docker, or single VM. Full control over hardware and scaling. Weaviate Cloud Service is managed alternative with similar guarantees to Pinecone but configurable resource allocation.

Key architectural decision: GraphQL query language. Different from SQL or simple REST. Learning curve for teams unfamiliar with GraphQL.

Qdrant Architecture

Self-hosted via REST API on any Linux VM or Kubernetes. Qdrant Cloud for managed option with lighter operational footprint than Weaviate.

Distributed architecture: Qdrant supports sharding and replication. Manual cluster management required for multi-node setups.

Milvus Architecture

Kubernetes-native. Requires Helm charts, operator knowledge, persistent storage (MinIO or S3). Designed for cloud-native deployments, not single-machine setups.

Distributed by default. Even small deployments benefit from replication and failover configuration.

ChromaDB Architecture

Python package (embedded in app) or standalone HTTP service. Can run in Docker or on single VM. No clustering or replication built-in.

Ideal for monolithic applications or serverless functions with local state.


Pricing and Cost-at-Scale Analysis

Cost Comparison: 100M Vectors at 5K QPS

Monthly projection assuming continuous load:

Pinecone (serverless):

  • Storage: 100M vectors × 1536-dim ≈ 600GB × $0.33 = $198/month
  • Reads: 5K QPS × 730 hrs × 3600 sec = 13.1B queries/month
  • Read cost: (13.1B / 1M) × $0.04 = $524/month
  • Total: ~$722/month

Note: High-QPS production deployments may benefit from Pinecone Enterprise reserved capacity for predictable pricing.

Weaviate Cloud Service:

  • Mid-tier cluster (100M vectors, 5K QPS): $400-500/month
  • Ops overhead: managed by WCS

Weaviate Self-Hosted:

  • Infrastructure: 3-node cluster at $600/month
  • Ops overhead: team responsibility
  • Total: $600/month (plus ops burden)

Qdrant Cloud:

  • 100M vector cluster at 5K QPS: $150-250/month
  • Lowest managed cost
  • Ops overhead: low (cloud-managed)

Qdrant Self-Hosted:

  • Infrastructure: 2-3 nodes at $300-400/month
  • Ops overhead: team responsibility
  • Total: $300-400/month

Milvus:

  • Cluster infrastructure (Kubernetes, 4 compute nodes + management): $1,200-1,800/month
  • Worthwhile only if throughput exceeds 20K QPS or vector count exceeds 500M
  • Ops overhead: high

ChromaDB:

  • Embedded: $0/month
  • Standalone service: single container = $20-50/month on cheap cloud VM
  • Uneconomical above 100M vectors, unscaleable at 5K QPS

Cost-Per-Million-Vector

DatabasePer-Million CostNotes
Pinecone$7.22/monthServerless, includes reads + storage
Weaviate Cloud$4-5/monthManaged service
Weaviate Self-Hosted$6/monthPlus ops burden
Qdrant Cloud$1.50-2.50/monthBest price-to-performance
Qdrant Self-Hosted$3-4/monthPlus ops burden
Milvus$12-18/monthOnly at massive scale
ChromaDBNegligibleOnly <100M vectors

Recommendation: Qdrant Cloud offers the best price-to-performance for medium-scale workloads (10-100M vectors). Pinecone serverless wins if ops headcount is limited or automatic scaling matters more than unit cost. Milvus makes sense only at massive scale (500M+ vectors) or when running dedicated Kubernetes for other purposes.


Scaling Characteristics

Pinecone Scaling

Automatic. Add vectors, queries auto-distribute. Pod tier determines QPS capacity.

Scaling cost: linear with vectors and QPS. Doubling QPS capacity requires upgrading pod tier (fixed cost increase).

Weaviate Scaling

Kubernetes-native. Horizontal scaling via pod replicas. Manual configuration of shard count and replication factor.

Adding capacity: spin up more Kubernetes nodes, adjust shard/replica settings. Requires cluster management expertise.

Qdrant Scaling

Manual sharding and replication. Config defines shard count and replica factor. Scaling requires planned cluster expansion.

Adding vectors: increase shard count via shard migration (manual but supported).

Milvus Scaling

Kubernetes-native, designed for scale-out. Compute nodes scale independently from storage. Collection sharding enables partitioning vectors across nodes.

Adding capacity: spin up more compute nodes, existing collections auto-distribute queries.

ChromaDB Scaling

No horizontal scaling. Single-machine bottleneck. Can upgrade machine specs (vertical scaling only) up to a point.


Use Case Recommendations

Early-Stage Startup Building AI Product

Use Pinecone. Trade the cost premium (~$720/month for 100M vectors at 5K QPS) for zero operational overhead. Engineering teams focus on product instead of vector database ops.

Break-even: when ops cost (1 FTE = $150K/year = $12.5K/month) exceeds infrastructure cost (Pinecone ~$720 × 12 = $8.6K/year). Pinecone wins easily at this scale.

Scaleup with 50+ Engineers and Existing Cloud Infrastructure

Use Weaviate Cloud Service or Qdrant Cloud. Cost-conscious ($150-500/month) but comfortable with managed services. If latency requirements are strict (<50ms p99), pick Qdrant.

Ops burden: low (managed service, not self-hosted). Teams focus on application, not infrastructure.

Large-Scale Teams with Kubernetes Expertise and Massive Scale

Use Milvus. Operational complexity is justified by cost savings (~$1,500/month for 100M vectors vs $720/month Pinecone serverless) and flexibility (custom indexing, tight resource control) at 500M+ vectors.

Prerequisite: Kubernetes expertise, dedicated ops team, 500M+ vectors to justify infra cost.

Strict Latency Requirements (<50ms p99)

Use Qdrant. Rust implementation and HNSW tuning give consistent <100ms latency at high throughput.

Pinecone also achieves <100ms on serverless, though very high QPS workloads benefit from enterprise reserved capacity.

Building RAG Prototype or Local Chatbot

Use ChromaDB embedded in the application. No external service, no scaling concerns. Perfect for notebooks and small deployments.

Easy migration path: develop on ChromaDB locally, deploy on Qdrant Cloud when scaling.

Cost-Sensitive, Can Tolerate 150-200ms Latency

Self-host Weaviate or Qdrant on Kubernetes. Higher ops burden ($6-10/month per million vectors) but 60-70% cost savings vs managed.

For teams with Kubernetes expertise, this is often the right call.


FAQ

What is a vector database? A database optimized for storing and searching high-dimensional vectors (embeddings). Enables semantic search by measuring similarity between vectors rather than keyword matching. Essential for RAG (Retrieval-Augmented Generation) and similarity-based recommendations.

Should we use a vector database or PostgreSQL with pgvector? PostgreSQL pgvector is fine for <10M vectors and <1K QPS. Above that, dedicated vector databases (Qdrant, Pinecone) outperform pgvector on latency and throughput. pgvector is excellent for learning, struggles under production load.

What about AWS OpenSearch or Azure Cognitive Search? Both support vector search. OpenSearch is cheaper at massive scale on AWS (already paying for infrastructure). Cognitive Search integrates well if using Azure AI services. Both require Elasticsearch/OpenSearch operational knowledge.

How do we migrate vectors from Pinecone to Qdrant? Export vectors via Pinecone API (fetch operations), import into Qdrant via bulk upsert. Pinecone provides no built-in export. For large datasets, write a batch job reading Pinecone, writing Qdrant.

Can vector databases handle real-time updates? Yes. All listed databases support upsert (insert/update) at ingestion time. Latency impact varies. Pinecone and Qdrant handle frequent updates well. Milvus requires index rebuild for optimal performance after large bulk updates.

How do we handle metadata filtering with vector search? All databases support metadata filtering during vector search. Store metadata (tags, timestamps, URLs) alongside vectors. Filter during query using AND/OR conditions. Implementation differs per database (Weaviate uses GraphQL, Pinecone uses metadata filters).

What's the difference between HNSW and IVF indexing? HNSW (Hierarchical Navigable Small World) is fast, good for general-purpose search. IVF (Inverted File) is memory-efficient for very large collections. HNSW is default in Qdrant and Milvus. Weaviate supports both. Most teams start with HNSW.



Sources