The vector database decision is often made on capability grounds (which supports the indexing algorithm we need, which has the Python SDK we prefer) without running the numbers. At small scale, the cost difference is negligible. At 10M+ vectors, it can be the difference between $500/month and $5,000/month for what is functionally the same capability.
This post runs the numbers across the three most commonly used options: Pinecone (fully managed, proprietary), Qdrant (open-source with a managed cloud offering), and pgvector (Postgres extension, runs on your existing database infrastructure).
The cost components of a vector database
Vector database costs have three components:
- Storage — holding the vectors and metadata on disk
- Compute / query operations — CPU and memory for running ANN (approximate nearest neighbor) searches
- Infrastructure overhead — replication, backups, monitoring
Managed services bundle these into a per-pod or per-vector pricing model. Self-hosted deployments expose them separately as cloud compute costs.
A few dimensions that matter for comparison:
- Dimensions per vector: most embedding models produce 1,536 (OpenAI text-embedding-3-small) or 3,072 (text-embedding-3-large) dimensional vectors. More dimensions = more storage and compute per vector.
- Query volume: high query-per-second (QPS) requirements need more compute allocation regardless of vector count.
- Metadata filtering: filtering on metadata (e.g., "only search vectors from document_type = 'contract'") adds compute overhead. Some databases handle this better than others.
Pinecone pricing
Pinecone uses a pod-based pricing model. Pods are pre-allocated compute + storage units; you pay for pods whether or not you're using their full capacity.
Pinecone pricing tiers (early 2026, verify current rates):
| Tier | Price | Vectors per pod | Notes | |---|---|---|---| | Starter | Free | 100K (1 index) | No SLA, development only | | Standard s1 pod | $0.096/hour | ~5M at 1536d | 32GB storage | | Standard p1 pod | $0.096/hour | ~1M at 1536d | Optimized for low latency | | Standard p2 pod | $0.384/hour | ~2M at 1536d | High QPS |
At 1M vectors (1536d): approximately 1 s1 pod = $69/month At 10M vectors (1536d): approximately 2 s1 pods + overhead = $200–$280/month At 100M vectors (1536d): approximately 20 s1 pods = $1,400–$1,800/month
Pinecone also charges per upsert and query operation above free tiers on some plans. Read the pricing page carefully — the pod cost alone doesn't capture total cost of ownership at high operation volumes.
Qdrant Cloud vs self-hosted
Qdrant is open-source (Apache 2.0). You can run it on your own infrastructure for free. Qdrant Cloud is their managed offering.
Qdrant Cloud pricing:
| Plan | Price | RAM | Notes | |---|---|---|---| | Free | $0 | 1GB | 1M vectors at 1536d, no SLA | | Starter | ~$25/month | 2GB | ~2M vectors at 1536d | | Business | ~$65/month | 4GB | ~5M vectors at 1536d | | Enterprise | Custom | Custom | SLA, dedicated |
At 1M vectors: Free tier or $25/month Starter = $0–$25/month At 10M vectors: requires ~8GB RAM = approximately 2x Business = $130/month At 100M vectors: requires significant RAM; Enterprise pricing = $500–$2,000+/month depending on configuration
Qdrant self-hosted: you pay only for the compute instance. A 16GB RAM VM on AWS (r6g.xlarge) runs approximately $110/month. This handles roughly 10–15M vectors at 1536d depending on index settings. At 100M vectors, you'd need multi-node clustering — but your costs scale with compute, not with Qdrant's pricing model.
pgvector: just your Postgres costs
pgvector adds vector similarity search to Postgres. If you're already running Postgres, the incremental cost to add vector search is small.
The catch: Postgres is not optimized for high-dimensional vector search. pgvector uses IVFFlat or HNSW indexing, which works well at small-to-medium scale but struggles at 100M+ vectors or high QPS requirements.
Practical performance profile:
- Under 1M vectors: works well with proper indexing
- 1M–10M vectors: acceptable performance with tuning; query latency increases
- Above 10M vectors: dedicated vector databases generally outperform pgvector on latency and throughput
Cost model: no incremental cost on your existing Postgres instance for small vector sets. For large sets (10M+), you'll need to right-size your instance for the additional memory requirements.
| Scale | pgvector instance sizing | Estimated monthly cost | |---|---|---| | 1M vectors | Standard Postgres (4GB RAM) | $50–$100 | | 10M vectors | Postgres (32GB RAM, r5.2xlarge) | $350–$500 | | 100M vectors | Not recommended | N/A |
Break-even analysis: managed vs self-hosted
| Scale | Pinecone | Qdrant Cloud | Qdrant Self-hosted | pgvector | |---|---|---|---|---| | 1M vectors | $69/mo | $0–$25/mo | $30–$60/mo | $0–$50/mo | | 10M vectors | $200–$280/mo | $130/mo | $110–$200/mo | $350–$500/mo | | 100M vectors | $1,400–$1,800/mo | $500–$2,000/mo | $400–$800/mo | Not recommended |
Key observations:
- At 1M vectors, the cost differences are small enough that developer experience and feature set should drive the decision.
- At 10M vectors, Qdrant (cloud or self-hosted) is materially cheaper than Pinecone for comparable capability.
- At 100M vectors, self-hosted Qdrant is typically the most cost-efficient option — but requires operational expertise to run reliably.
- pgvector makes sense when: you're under 5M vectors, you're already running Postgres, and your query volume is moderate. At higher scale or QPS, dedicated vector databases win on both performance and cost.
Latency vs cost tradeoffs
Managed cloud databases add network overhead vs self-hosted. For real-time applications requiring sub-10ms query latency, co-locate your vector database with your application.
For batch processing or lower-latency requirements, managed databases are often the better operational choice — you don't manage the infrastructure, updates, backups, or scaling.
Our typical recommendation by scale
For RAG development projects we build:
- Under 5M vectors, speed-to-deploy matters: Qdrant Cloud free/starter tier or pgvector
- 5M–50M vectors, managed preferred: Qdrant Cloud Business or Enterprise
- 50M+ vectors: self-hosted Qdrant on Kubernetes with proper autoscaling
- Already on Pinecone and it's working: stay on it unless cost is a problem
Switching vector databases is a non-trivial migration — you need to re-embed and re-index everything. Make the right choice at scale before you have 50M vectors to migrate.