• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer
Best Free Web Resources — local AI tools and hardware guides

Best Free Web Resources

Local AI Tools & Digital Engineering Resources

What can I run?
  • AI Tools
    • Start: Local LLMs
    • Ollama Models & VRAM
    • LM Studio Models
    • GPU Comparison
    • AI Hardware Matrix
    • Local LLM Directory
    • VRAM Calculator
    • Hardware Compare
    • Local Model Recommender
    • API Pricing & ROI
  • Local AI Guides
  • Web Resources
    • Inspiration
    • Photography
    • Games
    • SEO
    • Tutorial
      • Coding
      • WordPress
    • Resume/CV
    • Graphics
      • Logo
    • Freebies
Illustration: embedding vectors flowing into an indexed vector database store

Best Vector Database for Local RAG in 2026: What It Costs in RAM

October 10, 2026 by BFWR Editorial

Quick answer

  • For a personal RAG corpus the database is not the expensive part. Fifty thousand chunks embedded at 768 dimensions need roughly 188 MiB of RAM once index and overhead are counted — less than the embedding model that produced them.
  • Four different kinds of software get called “a vector database”. Choosing the wrong type costs you far more than choosing the wrong product.
  • If you run Open WebUI, the choice is already narrow: its documentation lists exactly three external providers — Qdrant, Milvus and pgvector.
  • Weaviate is the only one here that is not purely permissive: code in its wl/ directory is available only under a separate enterprise licence.
  • Chroma, Open WebUI’s default, has shipped no release since 5 May 2026 despite committing daily.

Sizes on this page use GiB and MiB (10243 and 10242), because that is how both the vendor documentation and your operating system report memory. Dimensions for specific models come from our guide to local embedding models for RAG, which sizes the raw vectors; this page is about what the database adds on top of them.

Four different things called “a vector database”

Roundups usually rank these against each other as if they were interchangeable. They are not. An embedded library runs inside your Python process; a server is a separate daemon you operate; an extension lives inside a database you already run; and a raw index library is not a database at all. Decide the shape first, then the product.

Project What it actually is Licence Latest release Stars
Chroma Embedded (in-process), SQLite-backed by default Apache-2.0 1.5.9, 5 May 2026 29,369
LanceDB Embedded; describes itself as a “retrieval library” Apache-2.0 0.39.0, 17 Sep 2026 11,522
Qdrant Standalone server Apache-2.0 1.19.1, 4 Sep 2026 34,804
Milvus Standalone server, cluster-oriented Apache-2.0 3.0.2, 20 Sep 2026 46,251
Weaviate Standalone server Split: BSD-3 + enterprise licence 1.39.6, 22 Sep 2026 16,844
pgvector PostgreSQL extension PostgreSQL License 0.8.6, 29 Jul 2026 23,154
FAISS A library, not a database — no persistence or API layer MIT 1.15.1, 16 Sep 2026 40,976

Star counts and release dates were read from the GitHub API on 25 September 2026 and will drift. The useful signal is the shape of each row, not the exact number.

What the index actually costs in RAM

Qdrant is the only project here that publishes its sizing arithmetic in full, so its formulas are used below. They are not Qdrant-specific in spirit — every HNSW-based store pays the same three costs — but the constants are Qdrant’s own:

dense_size      = points × dimensions × bytes_per_dim
hnsw_size       = points × m × 2 × 4 bytes × 1.2      # m defaults to 16
id_tracker_size = points × 52 bytes

bytes_per_dim is 4 for float32 (the default), 2 for float16, 1 for uint8 and 0.5 for 4-bit. The docs then advise adding about 20% headroom. Running those formulas over a single-node setup with no replication:

Chunks Dimensions Vectors HNSW graph ID tracker Total +20%
10,000 768 29 MiB 1 MiB 0.5 MiB 38 MiB
50,000 768 146 MiB 7 MiB 2 MiB 188 MiB
250,000 768 732 MiB 37 MiB 12 MiB 938 MiB
250,000 1024 977 MiB 37 MiB 12 MiB 1.20 GiB
1,000,000 768 2.86 GiB 146 MiB 50 MiB 3.66 GiB

The numbers are reproducible: the same formulas regenerate every worked example in Qdrant’s own documentation exactly, including its 5.72 GiB figure for two million 768-dimension vectors.

The graph everyone worries about is 5% of the bill

At 768 dimensions the HNSW graph costs about 154 bytes per point against 3,072 bytes for the vector itself — roughly 4.7% of the total. Tuning m down to save memory is therefore close to pointless, and it costs recall. The dimension count of your embedding model is the lever that matters, and it is chosen before the database ever sees the data.

Put the other way round: at 768 dimensions you would need about 2.6 million chunks to fill 8 GiB. At 4096 dimensions — a large embedding model — that falls to roughly 518,000. Dimensionality moves the ceiling by 5×; the graph does not.

Quantization is the real lever

Storing vectors at lower precision is where the savings are. The same 250,000-chunk corpus at 768 dimensions:

Precision Vectors Total index
float32 (default) 732 MiB 781 MiB
float16 366 MiB 415 MiB
uint8 183 MiB 232 MiB
4-bit 92 MiB 141 MiB

Qdrant’s documentation attaches an explicit warning to this: “Only use quantization if the resulting search quality is acceptable. Some embedding models don’t quantize efficiently, so verify recall against unquantized results.” Treat the table as a budget, not a free win.

The one licence worth reading

GitHub reports NOASSERTION for two of these projects, and the two cases are opposites.

pgvector is a false alarm. Its licence is the PostgreSQL License — a permissive BSD-style grant that GitHub simply does not auto-detect. There is nothing to worry about.

Weaviate genuinely is split. Its top-level LICENSE states that code “Outside of the ‘wl’ directory… is licensed under the BSD-3-Clause License”, while code inside wl/ “is only available under a separate enterprise license”. It adds: “Enterprise features are enabled via license key. The BSD license does not grant the right to use these features or circumvent any license key.” So without a key the enterprise features stay switched off. What the licence no longer does is promise, in so many words, that only BSD-3 code runs in that case.

Corrected 10 October 2026. When this guide was published on 25 September, wl/LICENSE-WEAVIATE was a five-line placeholder that stated no terms, and the top-level LICENSE said that without a key “only BSD-3-Clause-licensed code is executed”. A commit on 30 September 2026, titled “Update wl license text per legal”, replaced both: the placeholder now carries the enterprise-licence wording quoted above, and the sentence promising BSD-only execution is gone. That is the second change to this mechanism in five weeks, so treat it as a moving target. The same “read the licence, not the README” caution applies as with Open WebUI’s branding clause.

If you run Open WebUI, the decision is mostly made

Open WebUI ships with Chroma. Its own troubleshooting documentation is blunt about the limit: the “default ChromaDB vector database (which uses a local SQLite-backed PersistentClient)” crashes when UVICORN_WORKERS > 1, because of “SQLite being not fork-safe”. Single-worker installs are unaffected; the moment you scale workers, you must move.

And when you do move, the list is short. Open WebUI’s external-knowledge feature supports exactly three providers — “Qdrant, Milvus and pgvector” — with the caveat that the provider’s Python client must already be in your image. That rules out LanceDB and Weaviate for this particular integration regardless of their merits. Our private RAG chatbot guide covers the surrounding setup.

A note on Chroma’s release gap

Chroma is the default in the most popular local AI front end, and it has not cut a release since 5 May 2026 — on GitHub or on PyPI, where chromadb also sits at 1.5.9. That is nearly five months. It is not an abandoned project: the repository was pushed to on 24 September 2026 and carries 29,369 stars. But it had been releasing every week or two before May, so the cadence has plainly changed, and its GitHub description no longer calls it a vector database at all — it now reads “Search infrastructure for AI”. If you depend on Chroma, pin your version and watch it.

How to choose

  • One machine, one process, a personal corpus: stay embedded. Chroma or LanceDB. The index is a few hundred megabytes; none of this needs a server.
  • You already run PostgreSQL: use pgvector. One fewer daemon, permissive licence, and your vectors sit in the database you are already backing up.
  • You want a server and a permissive licence: Qdrant. It also happens to be the only project here that documents its memory arithmetic properly, which is why this page could be written at all.
  • You are building the retrieval layer yourself: FAISS — but understand you are adopting an index, not a database, and persistence is your problem.

The honest summary is that for local, single-user RAG, most of this choice does not matter much. Getting the embedding model and chunking right matters considerably more, and the context window you feed the results into will cost you more VRAM than the whole vector index costs RAM.

FAQ

What is the best vector database for local RAG?

For a single machine, an embedded store — Chroma or LanceDB — because a personal corpus needs only a few hundred megabytes and a separate server buys nothing. Choose Qdrant if you want a server with a permissive licence, or pgvector if you already run PostgreSQL.

How much RAM does a vector database need?

Mostly points × dimensions × bytes_per_dim. At 768 dimensions in float32 that is about 3.2 KB per chunk including graph and ID overhead, so 50,000 chunks need roughly 188 MiB and one million need about 3.66 GiB.

Is FAISS a vector database?

No. Its own description calls it “a library for efficient similarity search and clustering of dense vectors”. It provides the index; persistence, filtering, an API and concurrency are left to you.

Is Weaviate open source?

Partly. Code outside the wl/ directory is BSD-3-Clause; code inside it is available only under a separate enterprise licence, and those enterprise features are enabled by a licence key.

Sources

  • Qdrant capacity planning documentation — memory formulas, quantization guidance (qdrant.tech)
  • Weaviate LICENSE and wl/LICENSE-WEAVIATE (github.com/weaviate/weaviate)
  • Open WebUI RAG troubleshooting and retrieval documentation (docs.openwebui.com)
  • pgvector LICENSE (github.com/pgvector/pgvector)
  • Release versions and star counts from the GitHub API, and chromadb from the PyPI JSON API, both read 25 September 2026

Corrected 10 October 2026: Weaviate changed its licence wording on 30 September 2026, and the section on it now quotes the current text. Updated 25 September 2026: licences, release versions and star counts checked on this date; all memory figures computed from Qdrant’s published formulas.

⚡ Free Interactive Tools

Work out what your hardware can actually run

Free calculators and directories, sized from real model weights — before you download gigabytes or order a card:

💰 API Pricing & ROI Cloud cost vs local hardware 🚀 Start: Local LLMs Hardware, runner and first model 📊 What Can I Run? Models by VRAM tier, 8GB–128GB 💻 Hardware Matrix 75 laptops & GPUs profiled

Filed Under: Coding, Technology

About BFWR Editorial

BFWR Editorial is the byline for guides researched and written by Best Free Web Resources. These guides are built from primary sources — model cards, configuration files, official documentation and vendor pricing pages — and every figure is dated and linked so you can check it yourself. Size and memory numbers are arithmetic computed from published model data or from our own calculators, never measurements: BFWR does not operate a hardware test lab and publishes no benchmarks of its own. Where a figure comes from a vendor, we say so.

Primary Sidebar

⚡ FREE INTERACTIVE TOOLS

Local AI Hardware & VRAM Matrix

Benchmark your PC or Mac for local AI, calculate VRAM requirements, and compare cloud API costs vs local hardware ROI.

🚀 New here? Start with Local LLMs → 💻 Hardware Matrix (75 Devices) → 📚 Local LLM Directory (30 Models) → 🎮 AI GPU Comparison → ⚡ VRAM & KV Cache Calculator → 💰 API Pricing & Break-Even → 🍎 Mac VRAM Unlocker (90% Boost) →
📦 Ollama 🖥️ LM Studio ⚙️ llama.cpp 🚦 vLLM 💬 Open WebUI 🎨 ComfyUI 🔒 Self-Hosted 📊 VRAM Tiers 🎯 Recommender ⚖️ Comparisons

Search

  • Facebook
  • Instagram
  • RSS
  • Twitter
  • YouTube

Footer

Latest Guides

  • Mac mini M6 for Local AI: Which Configuration to Buy, and Why 16GB Is Slower
  • LM Studio Bionic: What It Does, What It Costs, and What Stays Local
  • llmfit: How the Local LLM Fit Checker Works, and How Far to Trust It
  • How to Run GLM-5.3-Flash Locally: 321B, MIT Licence, and the Memory It Takes
  • Why Modern Online Slots Feel Different Even When the Basic Format Looks the Same
  • How to Run Qwen3.8-Flash-Next Locally: Memory, Speed and the Licence Catch

AI Tools & Calculators

  • What can I run?
  • VRAM Calculator
  • GGUF Size Calculator
  • Fine-tuning VRAM
  • LoRA Training VRAM
  • Image Generation VRAM
  • Mac VRAM Optimizer

Browse & Compare

  • Models Directory (30 models)
  • Hardware Matrix (75 devices)
  • Image Models
  • Model Licences
  • Comparisons
  • Model Recommender
  • API Pricing & ROI

Guides & Resources

  • Technology
  • Coding
  • Tutorials
  • Freebies
  • Graphics

Copyright © 2026 · Best Free Web Resources · All Rights Reserved.  |  About · Privacy Policy · Contact · AI Tools Hub