🌱 Seedling

Vector Database Selection as Data Architecture

· 3 min read
Vector database selection should be treated as a standard data architecture decision evaluated on 5 criteria (query patterns, scale trajectory, operational overhead, integration requirements, and total cost of ownership) rather than a hype-driven technology choice, based on my experience deploying Qdrant, Pinecone, pgvector, and Weaviate across 8 production systems.

Why is vector database selection over-complicated?

The vector database market has more marketing than benchmarking, and teams spend weeks evaluating product positioning when they should spend days measuring their actual query patterns against each option’s documented performance characteristics.

I have deployed 4 different vector databases across 8 production systems. The selection process should take 2-3 days, not 2-3 weeks. The problem is that most teams start with vendor comparison pages instead of starting with their own requirements. A team that does not know their p95 query latency target, their expected index size, their write-to-read ratio, and their operational capacity has no basis for evaluating any database, vector or otherwise.

Every vector database on the market can perform approximate nearest neighbor search. They differ in operational characteristics, not in fundamental capability. The selection question is not “which is best?” It is “which fits my operational context with the least friction?”

What are the actual decision criteria?

The 5 criteria that matter are: query pattern complexity, scale trajectory, operational overhead tolerance, integration requirements, and total cost of ownership over 24 months.

  • Query Patterns: If you need pure vector similarity search, every option works. If you need hybrid search (vector + keyword + metadata filtering), your options narrow. If you need multi-tenancy with per-tenant isolation, they narrow further. Qdrant and Weaviate handle complex filtering natively. Pinecone handles metadata filtering well. pgvector inherits PostgreSQL’s full query capabilities but trades off pure vector search performance at scale.
  • Scale Trajectory: At under 1 million vectors, pgvector in an existing PostgreSQL instance is almost always the right choice. It adds no operational overhead. Between 1-50 million vectors, purpose-built options (Qdrant, Weaviate, Pinecone) provide better query latency and index management. Above 50 million, you need to evaluate distributed architectures and shard management strategies specific to each product.
  • Operational Overhead: Pinecone is fully managed, requiring zero infrastructure management. pgvector runs inside your existing PostgreSQL, requiring no additional infrastructure. Qdrant and Weaviate require dedicated deployment and management (self-hosted or cloud). If your team has 0.5 FTE of database operational capacity, Pinecone or pgvector is the pragmatic choice.
  • Integration Requirements: If your application already runs on PostgreSQL, pgvector eliminates an entire infrastructure dependency. If you need tight integration with a specific AI framework (LangChain, LlamaIndex), check which vector stores have first-class support. If you need real-time CDC integration, evaluate each option’s streaming ingest capabilities.
  • Total Cost at 24 Months: Include infrastructure costs, operational labor, and migration risk. A managed service at $500/month that requires 0 hours of operational attention may be cheaper than a self-hosted solution at $100/month that requires 8 hours of monthly maintenance at an engineer’s loaded cost.

When is pgvector the right answer and when is it not?

pgvector is the right answer when your vector count is under 5 million, your team already operates PostgreSQL, and you value operational simplicity over maximum query performance. It is the wrong answer when you need sub-10ms query latency at scale or complex vector-specific features like quantization and dynamic index tuning.

I used pgvector for 3 production systems. In each case, the vector count was under 2 million, the application already used PostgreSQL, and the p95 latency requirement was under 100ms. pgvector delivered 45ms p95 latency on 1.2 million 1536-dimensional vectors with an HNSW index. No additional infrastructure. No additional ops burden. For these use cases, deploying a separate vector database would have been over-engineering.

For the other 5 systems, the requirements exceeded pgvector’s comfortable range. One system had 23 million vectors and needed sub-20ms p95 latency. Another required complex multi-vector queries with cross-reference filtering. For these, purpose-built vector databases justified their operational overhead. The decision was not about which database was “better.” It was about which matched the specific requirements with the least total friction. That is what all data architecture decisions are about.