Comparison of 10 million-level vector databases: Milvus, Qdrant, Chroma, Weaviate

Written by
Audrey Miles
Updated on:June-25th-2025
Recommendation

Master the performance comparison of vector databases and efficiently choose the database that suits your project.

Core content:
1. Milvus's enterprise-level application advantages and community support
2. Qdrant's lightweight features and performance
3. Chroma and Weaviate's performance on small and medium-sized data sets and community activity

Yang Fangxian
Founder of 53A/Most Valuable Expert of Tencent Cloud (TVP)

We often use vector databases in large model development. The following is a comparative analysis of several common types to help us choose the appropriate database for development in our projects.

1. Milvus

  •  Core advantages: Suitable for large-scale enterprise applications , millisecond latency (single query <100ms, depending on index and hardware, excellent performance in high concurrency and large-scale data sets (billions of vectors) scenarios, leading QPS and recall rate. 20 million 768-dimensional vectors (HNSW index), 100-500 QPS on a single machine, support for multiple indexes (leading performance in HNSW, IVF, ANN-Bench tests), adjustable parameters (such as efSearch) to balance speed and accuracy, relatively high resource consumption.

  •  Community: Developed by Zilliz, the community is extremely active, with multi-language SDKs (Python, Java, Go, etc.) and rich APIs. Address: https://github.com/milvus-io/milvus, 34.2k stars (20250422).

  • Limitations : Distributed clusters are required for high concurrency, and the QPS of a single machine is limited by memory and CPU.


2. Qdrant

  • Core advantages : efficient engine developed in Rust language, query speed: millisecond level (<100ms), about 100-400 QPS for 20 million vectors, throughput: slightly weaker for single machine, limited improvement for distributed system, cost considerations: the two are similar in cost, Milvus is cost-effective, but lightweight, easy to integrate, good AI framework support, optimized HNSW implementation in memory and on disk, and stable performance.

  • Community: The community is growing rapidly, with good documentation and technical support, REST and gRPC interfaces, and easy-to-use Python/JavaScript SDK. Address: https://github.com/qdrant/qdrant, 23.1k stars (20250422).

  • Limitations : The distributed performance is not as stable as Milvus, and the performance on large-scale data sets is slightly inferior to Milvus, especially the throughput is limited in high-concurrency scenarios.


3. Chroma

  • Core advantages: Works mainly in  Python environment , especially using LangChain or LlamaIndex. Good performance for small-scale data sets (less than one million), moderate query latency, suitable for rapid prototyping.

  • Community: The community is small but active, lightweight, with a simple API, suitable for novices and rapid development projects, and the documentation is simple and clear. Address: https://github.com/chroma-core/chroma, 19.4k stars (20250422).

  • Limitations: No native persistent storage, reliance on external databases; performance drops by 40% when the number of vectors exceeds 1 billion.


4. Weaviate

  • Core advantages: Good performance on small and medium-sized data sets, low query latency, support for hybrid search (vector + keyword), strong horizontal expansion capabilities, and can process billions of vectors.

  • Community: GraphQL query interface is intuitive, Python/Go SDK is easy to use, documentation is detailed, and community support is good. Address: https://github.com/weaviate/weaviate, 13.1k stars (20250422).

  • Limitations: GraphQL has a learning curve. Hybrid search and modularity are powerful but also increase configuration complexity . Large-scale expansion requires more infrastructure resources and the cost may be higher than Qdrant.


5. Others

  1. Elasticsearch is too heavy, the RedisVL ecosystem is relatively weak, and other cloud platforms are a bit expensive. Those who have money can use them.


In general:

angle
Milvus
Qdrant
Chroma
Weaviate
1. Core positioning and architecture
Large-scale, cloud-native, enterprise-grade. Distributed microservice architecture (Go/C++), designed for massive data and high concurrency.
High performance, memory safety, flexible deployment. Written in Rust, performance and memory efficiency are prioritized. Single node/cluster mode. Relatively simple architecture.
Developer-friendly, easy to use, local first. Python-dominated (core library C++/Rust), designed for embedded/local, easy to integrate. Client/server mode.
GraphQL native, modular, hybrid search. Written in Go. GraphQL API as the core, supports modular extensions (vectorization, Q&A). Designed to support vector, scalar and hybrid search. Single node/cluster.
2. Performance and Scalability
High. Designed for horizontal expansion (hundreds of billions). Multiple indexes (HNSW, IVF, DiskANN). Relatively high resource consumption.
High. Rust brings performance advantages (low latency P99). Efficient filtering. Quantization support. Good scalability in cluster mode.
Medium to high. Good performance for small and medium-sized data. Large-scale scalability is relatively weaker than Milvus/Qdrant/Weaviate, but developing rapidly. Depends on the performance of the underlying library.
High. Go language has good concurrency performance. Supports HNSW. Hybrid search is a highlight. Supports horizontal expansion through sharding. Performance depends on configuration and modules.
3. Usability and development experience
Medium. Complex architecture, deployment and operation require investment. Complete SDK (Python, Java, Go, etc.). Comprehensive documentation.
Good. Clear API and good documentation. Relatively simple to deploy. Rich SDK (Python, Rust, Go, TS, etc.).
High. Extremely easy to get started (Python). Tightly integrated with LangChain/LlamaIndex. Great for rapid prototyping and local development.
Good. GraphQL API is powerful but has a learning curve. SDKs are complete (Python, Java, Go, JS). Good documentation. Modularity simplifies some processes (e.g. built-in vectorization).
4. Feature richness
Very rich<br>Multiple indexes, multiple distances, complex filtering, multi-tenancy, TTL, dynamic Schema, multiple consistency levels, data tools.
Rich<br>Strong metadata filtering (pre/post), geographic/full-text filtering, recommendation API, collection alias, snapshot, quantification.
Basic and practical<br>Core vector storage/search/filtering is complete. API is simple. Ecosystem integration is strong. Functional depth is relatively shallow, but it meets common RAGs.
Very rich<br>Hybrid search (BM25+Vector), GraphQL query, data object relations (cross references), modularity (vectorizer, reader, generator), multi-tenancy, backup.
5. Deployment and Operation
Complex. K8s deployment (Helm/Operator) is recommended. There are many components, and monitoring and maintenance require high professionalism.
Flexible. Docker, K8s (Helm), binary. Official cloud Qdrant Cloud. Medium operation and maintenance complexity.
Simple (local/basic mode). Extremely simple to use locally. Easy to deploy client/server Docker. Official cloud Chroma Cloud. Relatively little experience in large-scale self-built operation and maintenance.
Flexible. Docker, K8s (Helm). Official cloud Weaviate Cloud Services (WCS). Moderate operation and maintenance complexity, cluster configuration requires understanding of its concepts.
6. Data Management and Persistence
Powerful. Multiple storage backends (S3, MinIO). Data index separation. Backup and recovery tools. Dynamic fields.
Reliable. Disk persistence. WAL guaranteed writes. Snapshot backup.
Basics (evolving). Local file system (SQLite/DuckDB + npy). More robust server-mode persistence.
Reliable. Disk persistence, configurable storage backend. Built-in backup/restore API. Supports linking between data objects.
7. Ecosystem and Community
Mature. CNCF graduated project. Active community, many users. Integrated with MLOps. Commercially supported by Zilliz.
Fast growth. Active and responsive community. Good integration with LangChain/LlamaIndex etc. Supported by commercial company Qdrant Solutions/Cloud Services.
Very active (developer community). Popular among AI/ML developers due to ease of use. Tight integration with the Python ecosystem. Supported by commercial company Chroma DB Inc./cloud services.
Actively growing. Active community, rich documentation examples. Good integration with LangChain/LlamaIndex. Support/cloud services from commercial company Weaviate BV (formerly SeMI Tech.).
8. License
Apache 2.0
Apache 2.0
Apache 2.0
BSD-3-Clause

Here Weaviate uses the BSD license, which is relatively more relaxed.