Skip to content

Databases that support vectors

Nearly every database now supports vectors. That’s the honest headline, and it changes the question you should be asking.

It used to be “which vector database should we adopt?” It is now usually “does the database we already run do this?” — and the answer is very often yes.

This page is a directory. It’s grouped by what each thing actually is, because that’s what determines whether it fits your stack.

Under roughly 10,000 vectors, a plain array in memory is genuinely fine — that’s what every language guide on this site does, and it answers in milliseconds. Between 10,000 and about a million, the database you already run is almost certainly enough.

Adding a new datastore is a real, permanent cost: another thing to back up, monitor, secure, upgrade and explain to whoever joins next. Make it earn that. More on the crossover points in chunking and vector databases.

The most common answer, and usually the right one.

  • pgvector — the standard extension. Adds a vector column type with HNSW and IVFFlat indexes, and cosine, L2 and inner-product operators. Available on essentially every managed Postgres.
  • pgvectorscale — TimescaleDB’s extension on top of pgvector, adding a DiskANN-style index for larger collections.
  • VectorChord — successor to pgvecto.rs, aimed at higher throughput and larger-than-memory indexes.

Managed Postgres with vector support includes Supabase, Neon, Amazon RDS and Aurora, Google Cloud SQL and AlloyDB (AlloyDB adds a ScaNN-based index), and Azure Database for PostgreSQL.

Vector support has landed almost everywhere.

Database Support
MariaDB Native VECTOR(N) type and VECTOR INDEX using modified HNSW, up to 16,383 dimensions. GA in 11.8 LTS, no extension needed
SQL Server 2025 Native vector type and vector search alongside relational data
Azure SQL Database Vector functions and storage in the managed service
Oracle Database 23ai AI Vector Search — VECTOR type, similarity operators, integrated with SQL
MySQL HeatWave Vector store and in-database similarity search
SingleStore Vector type with ANN indexing, built for hybrid transactional/analytical work
CockroachDB Vector indexes on a distributed, Postgres-compatible engine
TiDB Vector search in a distributed MySQL-compatible database
YugabyteDB pgvector support on distributed Postgres
ClickHouse Vector similarity indexes in a columnar analytics database
  • SQLite + sqlite-vec — vector search in a single file, no server. Excellent for desktop apps, mobile and edge. Supersedes the older sqlite-vss.
  • DuckDB VSS — an HNSW index extension for DuckDB’s analytical engine.
  • LanceDB — embedded, built on the Lance columnar format. Sits between a library and a database, and is strong for multimodal data.
  • Chromapip install and go. The easiest possible start; also runs as a server.

Document, key-value and wide-column stores

Section titled “Document, key-value and wide-column stores”
Database Support
MongoDB Atlas Atlas Vector Search, with filtering on any document field
Redis Vector similarity in the Query Engine, plus vector sets. Very low latency, memory-resident
Couchbase Vector search in the Search service
Apache Cassandra Vector type and SAI vector index from 5.0
DataStax Astra DB Managed Cassandra with vector search
Aerospike Vector Search for very high throughput workloads
Azure Cosmos DB Vector search including a DiskANN-based index
Firestore K-nearest-neighbour queries on vector fields
RavenDB Built-in vector search with automatic embedding generation
ArangoDB Vector search alongside its graph and document models
SurrealDB Vector functions and HNSW indexing in a multi-model database

If you already run one of these for keyword search, you can do hybrid retrieval in a single system — which is a strong argument for staying put.

  • Elasticsearch — kNN search plus mature BM25, and built-in RRF for merging them.
  • OpenSearch — the Apache-licensed fork, with k-NN via FAISS, nmslib or Lucene engines.
  • Apache Solr — dense vector search on the long-standing Lucene-based engine.
  • Vespa — arguably the most capable engine here for large-scale hybrid ranking, and the steepest learning curve.
  • Typesense — vector search in a deliberately simple, fast, typo-tolerant engine.
  • Meilisearch — AI-powered search on top of its keyword engine.
  • Manticore Search — a Sphinx successor with kNN support.
  • Algolia — NeuralSearch, combining vector and keyword retrieval as a managed product.

Built for this from the start. You’re paying for filtered ANN at scale, and the operational cost of another system.

  • Pinecone — fully managed, no servers to run. The “just make it work” option.
  • Qdrant — open source, Rust, strong and predictable metadata filtering. My usual pick when Postgres isn’t enough.
  • Weaviate — open source, with built-in vectorisation modules and a GraphQL-ish API.
  • Milvus — open source, built for very large scale, with Zilliz Cloud as the managed version.
  • Vald — distributed vector search on Kubernetes, CNCF-adjacent.
  • Marqo — generates the embeddings for you, including images.
  • Deep Lake — from Activeloop, aimed at multimodal AI datasets.
  • turbopuffer — object-storage-backed, optimising hard for cost per vector.

When relationships matter as much as similarity — see the GraphRAG discussion.

  • Neo4j — vector indexes queryable from Cypher alongside graph traversals.
  • Amazon Neptune Analytics — vector similarity in a managed graph engine.
  • TigerGraph — vector search combined with graph analytics.

When the vectors belong next to analytical data you already have.

  • BigQueryVECTOR_SEARCH with indexes, and embedding generation via SQL.
  • Snowflake — a VECTOR type and similarity functions, integrated with Cortex.
  • Databricks Vector Search — indexes that sync automatically from Delta tables.
  • StarRocks — vector indexes in a real-time analytics engine.
  • Azure AI Search — vector, keyword and hybrid retrieval with strong RAG integration.
  • Vertex AI Vector Search — Google’s managed service, formerly Matching Engine.
  • Amazon S3 Vectors — vectors stored natively in object storage, up to 2 billion per index, integrating with Bedrock Knowledge Bases and OpenSearch. Optimises for cost over latency: infrequent queries return in under a second rather than milliseconds.
  • Amazon OpenSearch Serverless — managed vector collections.
  • Amazon MemoryDB — Redis-compatible, in-memory, for very low latency.

An important distinction that trips people up. These do nearest-neighbour search and nothing else: no persistence, no filtering, no concurrency, no network API. You supply all of that.

  • FAISS — Meta’s library, the reference implementation many databases build on.
  • hnswlib — a compact, fast HNSW implementation.
  • ScaNN — Google’s, strong on the accuracy/speed frontier.
  • Annoy — Spotify’s, memory-mapped and simple.
  • Voyager — Spotify’s newer HNSW library for Python and Java.
  • USearch — compact, many language bindings.
  • NMSLIB — the research library HNSW originated in.

Reach for a library when you want maximum control and are content to own persistence, updates and access control yourself. That last one is the usual reason teams migrate off them: permission filtering is where a bare library stops being viable.

If… Then
Under ~10k vectors An array in memory. Seriously
You run Postgres pgvector. Stop reading
You run MySQL, SQL Server, Oracle or MariaDB Use the native vector support you already have
You run Elasticsearch or OpenSearch Use its kNN, and get hybrid search free
You run MongoDB or Redis Atlas Vector Search or the Redis Query Engine
Desktop, mobile or edge sqlite-vec or LanceDB
Prototyping, want it working today Chroma
Outgrown Postgres, want open source Qdrant, Weaviate or Milvus
Don’t want to operate anything Pinecone, Azure AI Search or Vertex AI
Billions of vectors, cost over latency Amazon S3 Vectors or turbopuffer
Relationships matter as much as similarity Neo4j or Neptune Analytics
Vectors belong next to analytics BigQuery, Snowflake or Databricks