In the Loop· August 25, 2026

vector-databases · rag · ai-infrastructure

Contents
  1. The comparison trap
  2. Factor 1: where your data already lives
  3. Factor 2: the scale you actually need
  4. Factor 3: who maintains it
  5. The exceptions, named
  6. How to actually decide
  7. FAQ

Best vector database for RAG: the 3 factors that actually decide

Here’s the direct answer. For a small team, three factors decide the best vector database for RAG: where your data already lives, the scale you actually need, and who’s going to maintain the thing.

Everything else is noise.

If you’re still fuzzy on what a vector database actually does inside a RAG setup, read the plain-English guide first, or start with what RAG actually means if that’s the part that’s unclear. This post assumes you know the what and are stuck on the which.

Abstract illustration of scattered documents resolving left to right into an ordered grid, with one document highlighted in cobalt blue as the retrieved result

The comparison trap

Search “top vector databases” and you’ll drown in the same article written twelve different ways.

A feature matrix. A benchmark chart. Ten products, all “leading,” all “scalable,” none of them chosen for you by the end.

Here’s what you do NOT need to make this decision:

What you need is an honest read of your own situation. The three factors below are that read.

Why do the comparison articles skip this?

Because your situation doesn’t generate affiliate clicks. Benchmarks do.

Factor 1: where your data already lives

This is the factor most teams skip, and it’s the one that should go first.

If your documents, users, and metadata already sit in Postgres, you can add vector search to that same database with pgvector.

One system. One backup story. One set of credentials.

A separate vector database means a second system to run, secure, and keep in sync with the first. That sync problem is real work. Your source documents change, and now two stores have to agree about it.

The question isn’t “which vector database is best.” It’s “do I need a separate one at all.”

Think about what a second store actually costs you day to day.

Every document update now has to land in two places. The record in Postgres changes, and the corresponding vectors in the separate store have to be re-embedded and rewritten to match.

Miss that sync once and your RAG answers quietly go stale. The retrieval still works. It just retrieves the old version, and nobody gets an error message telling them so.

That failure mode doesn’t exist when the chunks and the vectors live in the same database as the documents.

One write path. One transaction. Nothing to drift.

CorpusWire runs on pgvector inside Postgres. Not because it tops a benchmark. Because the documents, the chunks, and the vectors live in one place, and one place is easier to operate than two.

That’s not a niche position. It’s the boring default that comparison articles ignore, because “use the database you already have” doesn’t fill a top-10 list.

Factor 2: the scale you actually need

Dedicated vector databases earn their complexity at serious scale. Hundreds of millions of vectors, heavy concurrent query load, latency budgets measured in milliseconds.

Now look at your corpus.

Do the arithmetic before you do the shopping. Count your documents, estimate the chunks each one breaks into, and that’s your vector count.

A few thousand documents, chunked, lands you in the tens or hundreds of thousands of vectors. That’s not a scale problem. That’s a Tuesday for Postgres.

Compare that number against what the dedicated stores are actually built for. Their architecture decisions, their sharding, their memory management: all of it exists to serve workloads several orders of magnitude past yours.

You’d be paying the complexity tax without collecting the benefit.

Be honest about the growth curve too. “We might need billions of vectors someday” is how teams buy infrastructure for a company they don’t run yet.

Choose for the corpus you have, not the one in your pitch deck. Migrating later, if you genuinely outgrow it, is a smaller job than operating oversized infrastructure from day one.

When does a dedicated store actually earn its place? When your vector count or query load makes Postgres the measured bottleneck, not the imagined one.

Measured. Not imagined.

Factor 3: who maintains it

Every option on the market sits somewhere on one line: how much of the operational burden is yours.

At one end, fully managed services like Pinecone. You get an API key and a bill. Somebody else patches, scales, and gets paged at 3am.

At the other end, an open source vector database you self-host. Qdrant, Weaviate, Milvus, Chroma.

The software is free. The maintenance is not.

Self-hosting means upgrades, monitoring, backups, and security are your team’s job. If nobody on your team wants that job, the “free” option is the expensive one.

Match the choice to the team you have, not the team you’d like. A two-person team with no ops background should not be running a self-hosted cluster to save a subscription fee.

And pgvector sits in the middle of this line, quietly. Managed Postgres providers run it for you, so you get the one-system simplicity of Factor 1 without taking on a new self-hosting burden.

That combination is why it keeps winning for small teams. You’re not choosing between simplicity and support. You get both from infrastructure you were probably paying for anyway.

One more honest note on cost. Compare total cost, not sticker price: the subscription you’d pay for managed against the engineering hours you’d spend self-hosting. Teams consistently count the first and forget the second.

The exceptions, named

“Default to pgvector” is not “always pgvector.” Three situations genuinely point the other way.

First: Postgres isn’t in your stack. If your application runs on a different database entirely, adding Postgres just for vectors recreates the two-system problem Factor 1 warned you about. In that case a managed dedicated store is the simpler path, not the complex one.

Second: you’ve measured a real ceiling. Your vector count or query load has made Postgres the demonstrated bottleneck, with numbers on a dashboard, not a feeling in a meeting. That’s the legitimate trigger for a dedicated store.

Third: your team already runs one. If someone on the team has operated Qdrant or Weaviate in production before, that experience is worth more than any default. Familiarity is an operational asset.

None of these is exotic. All of them are checkable in an afternoon.

If none of the three applies to you, the default stands.

How to actually decide

Run the three factors in order. Stop at the first clear answer.

Diagram of the three-factor decision flow: Factor 1, where your data already lives; Factor 2, the scale you actually need; Factor 3, who maintains it

Start with Factor 1. If your stack already includes Postgres, pgvector is your default. You need a specific, named reason to leave it, not a vague sense that dedicated tools are more serious.

What counts as a named reason? One of the three exceptions above, written down, with the evidence next to it.

“It might not scale” is not a named reason. “Our query latency crossed our budget at this measured load” is. The difference between those two sentences is the difference between engineering and shopping.

Then Factor 2. If you can name the scale ceiling you’ll hit, and it’s real, shortlist the dedicated stores. If you can’t name it, you haven’t hit it.

Then Factor 3. From your shortlist, pick the maintenance model your actual team can carry.

Managed if ops isn’t your strength. Self-hosted open source if it is, and the control matters to you.

Notice what this process never asked for.

It never asked which product won a benchmark. It never asked what the top vector databases are this quarter. Those questions have answers, and the answers keep changing, and none of them are about you.

The best vector database for RAG is the one your team can run without thinking about it. For most small teams with Postgres in the stack, that’s pgvector. For teams past a measured scale ceiling, it’s a dedicated store matched to their ops capacity.

So here’s the move. This week, write down three things: where your data lives, your actual vector count, and who on your team owns infrastructure.

Most teams won’t write those three lines. They’ll read another comparison article instead.

The few who do will have this decision made by Friday.

FAQ

Do I need a managed vector database or can I self-host? You can self-host if someone on your team genuinely owns the operational work: upgrades, monitoring, backups, security. An open source vector database like Qdrant or Weaviate is production-capable, but the software being free doesn’t make running it free. If nobody owns that work, pay for managed, either a managed Postgres with pgvector or a managed dedicated service, and spend your team’s time on your product instead.

Do I need a dedicated vector database at all? For most small-team RAG workloads, no. If Postgres is already in your stack, pgvector handles vector search at the corpus sizes most teams actually have, in the system you already operate. A dedicated store earns its place when you’ve measured Postgres as the bottleneck, not before.

Want this running inside your own org?

Happy to show you how this fits your setup. 30-minute call, your documents, no prep needed.

Book a call →