Comparison of Vector Databases

Welcome to the Comparison of Vector Databases page. This resource provides a detailed comparison of various vector databases to help you understand their features and capabilities. For updates and contributions, visit our repository at https://github.com/lqhl/vectordb-comparison/ and feel free to submit pull requests.

This page is maintained by lqhl. Follow me at @qliu52.

MyScale Pinecone Qdrant Weaviate Milvus Chroma Postgres (pgvector) Postgres (pgvecto.rs) OpenSearch
Purpose-built for vector search MyScale is built atop ClickHouse with focus on vector search. Postgres is a relational database. Postgres is a relational database. OpenSearch is a full-text search engine. It recently added vector search support.
Managed cloud Provided by Zilliz. Provided by Supabase, Amazon RDS for PostgreSQL etc. Provided by Amazon OpenSearch Service.
Free pods ~5M 768D vectors (unlimited lifetime) ~200k 768D vectors (unlimited lifetime) ~1M 768D vectors (unlimited lifetime) 🔶 14 days trial two cluster each with ~500K 768D vectors (unlimited lifetime) ~170K 768D vectors (unlimited lifetime) provided by Supabase; might be less due to memory limit
Self-host
Open-source
SQL support Pinecone provides RESTful API not SQL. OpenSearch provides SQL support.
Supported index types MSTG, HNSW, IVF Details can be found in their docs. HNSW, FreshDiskANN Details can be found in their blog Great Algorithms Are Not Enough. HNSW HNSW HNSW, IVF, ScaNN, DiskANN Details can be found in their docs. HNSW HNSW, IVF HNSW, IVF HNSW
Disk index support They mention that NVMe SSD is used. They support FreshDiskANN which is a disk index. Qdrant supports disk storage with memory map. They support DiskANN which is a disk index.
Metadata filtering
Time-based metadata filtering 🔶 Pinecone does not support time or date types, and users need to convert time/date to integer in-order to filter on time. 🔶 Qdrant does not support time or date types, and users need to convert time/date to integer in-order to filter on time. 🔶 Milvus does not support time or date types, and users need to convert time/date to integer in-order to filter on time.
Geospatial data support MyScale supports geospatial data since it's built on the top of ClickHouse. Qdrant supports geospatial data. Weaviate supports geospatial data. Postgres supports geospatial data with another plugin PostGIS. Postgres supports geospatial data with another plugin PostGIS. OpenSearch supports geospatial data.
Aggregations
Hybrid search Hybrid search is the ability to search on vectors and text (using a fulltext index or sparse vector index) at the same time. 🔶 MyScale supports hybrid search but the current implementation does not utilize a full-text index or sparse vector index which makes it inefficient. Pinecone supports hybrid search with sparse vector index. Qdrant supports hybrid search with sparse vector index. Weaviate supports hybrid search with BM25. Milvus uses the phrase “hybrid search”, but it means metadata filtering. 🔶 Postgres supports hybrid search by utilizing postprocessing outside the database. 🔶 Similar to pgvector. OpenSearch supports hybrid search with full-text index (BM25).
Monthly Cost Per 100 QPS (Lower Is Better) Indicates the monthly expense to achieve 100 Queries Per Second on a 5M 768D vector dataset with each vector database cloud service. Lower costs represent higher cost-effectiveness. Benchmark data provided by MyScale. 30 181 125 89 152 N/A 64 161 616
Monthly Cost Per 100 QPS for Filtered Vector Search (Lower Is Better) Reflects the monthly cost for achieving 100 Queries Per Second on a 5M 768D vector dataset with metadata filtering in each vector database cloud service. Lower costs indicate more cost-efficient handling of filtered searches. Benchmark details available at MyScale. 83 449 368 2026 285 N/A Low precision Postgres with pgvector has low precision (less than 50%). 739 Low precision OpenSearch has low precision (less than 50%).