What it is
Milvus is an open-source vector database written in Go and C++, built as separate services for storage, indexing and querying so each can scale on its own. It supports dense and sparse vectors, BM25 full-text search, many index types and filtering on scalar fields.
Milvus 3.0.0, released on 29 July 2026, adds a lake-native design: External Collections query Parquet, Lance, Iceberg or Vortex files in object storage without copying them in. It also rebuilt the sparse index, added long TEXT fields, faceted search, online schema changes and per-row expiry. The latest patch, 3.0.3, shipped on 14 October 2026.
Zilliz, the company behind Milvus, sells the managed Zilliz Cloud.
Our review
Milvus is the open-source vector database designed from the start for very large collections, and its architecture is the argument. Storage, indexing and querying run as separate services, so each scales on its own. That design is why it has a following for billion-vector workloads and about 46,500 GitHub stars, more than Qdrant or Weaviate.
Version 3.0, released in July 2026, makes a distinctive bet: External Collections index and search Parquet, Lance, Iceberg or Vortex files already in object storage, so embeddings produced by a data pipeline need not be copied in. Zilliz says the rebuilt BM25 index is about three times smaller than in 2.6 and one new sparse algorithm reaches up to ten times the old throughput; those are vendor figures, and Zilliz also runs VDBBench, the leaderboard on which Milvus tends to do well. The new storage formats are opt-in and, once enabled, block rollback to 2.6.
The docs are candid about the hardware. A cluster wants 8 cores and 32 GB RAM at minimum, 128 GB recommended, NVMe disks, and etcd on storage fast enough for sub-10 ms fsync. Standalone in Docker Compose still runs etcd and MinIO alongside Milvus.
Security defaults deserve attention. User authentication is off until you set authorizationEnabled, and the default root password is Milvus. In February 2026 a critical advisory (CVE-2026-26190, CVSS 9.8) showed that the metrics port 9091 exposed an unauthenticated REST API even with authentication on; it was fixed in 2.5.27 and 2.6.10, and the advisory notes many such ports were reachable from the internet. Qdrant asks far less of the people running it, which is the real comparison for anything under a few hundred million vectors.
Where it earns its place
A platform team at a marketplace with 800 million product embeddings
Serve filtered similarity search at production latency without sharding by hand
Deploy the cluster with Helm or the Milvus Operator, size query nodes separately from index nodes, and filter on scalar fields such as category and price. Expect a platform engineer's ongoing time and 128 GB-class nodes; Zilliz Cloud is the alternative if that headcount is missing.
A data engineering team whose embeddings land in Iceberg tables
Search lakehouse data without running a second copy pipeline
Point a 3.0 External Collection at the Parquet or Iceberg files in S3 and index them in place. It removes an ingestion job, but it is new in 3.0 and the format change blocks rollback to 2.6.
A head of engineering budgeting a 100 million-vector RAG corpus
Decide between self-hosting and paying Zilliz
At Zilliz's published Dedicated rates for 768-dimension vectors, 100 million vectors costs from about $6,300 a month performance-optimised, $1,600 capacity-optimised or $500 on tiered storage, before replicas. Compare that with a self-hosted cluster plus staff time.
Before you commit
- Setup
- Standalone: download the v3.0.3 compose file and run docker compose up -d, which starts etcd, MinIO and Milvus on port 19530. Production: Helm 3 on Kubernetes 1.16 or later, with Woodpecker as the bundled message queue and Pulsar optional.
- Integrations
- Python (pymilvus 3.0.2), Java, Go and Node SDKs plus a REST API; Milvus Lite runs in-process for prototypes. External Collections read Parquet, Lance, Iceberg and Vortex in object storage.
- Data and privacy
- Self-hosted Milvus sends nothing to Zilliz; data lives in your object storage and etcd. Authentication must be enabled by hand and the root password changed from Milvus. Keep port 9091 private: CVE-2026-26190 (CVSS 9.8) exposed an unauthenticated API there before 2.5.27/2.6.10, and a 2026 import flaw that bypassed collection RBAC was fixed in 3.0.3.
- Cost at scale
- Self-hosted: the docs recommend 8+ cores and 128 GB RAM per cluster with NVMe. Zilliz Cloud Dedicated starts from $63 per million vectors a month performance-optimised, $16 capacity-optimised and $5 tiered; the free tier gives 5 GB and up to 5 collections, and Enterprise starts from $197 a month with SSO and private endpoints.
- Limits
- About 1,450 open issues. Version upgrades across majors need care (3.0 formats are one-way), and the operational surface (etcd, object storage, queue, several node types) is much larger than Qdrant's or pgvector's.
What's good
- Separate storage, index and query services scale independently
- Searches Parquet, Lance and Iceberg files in place (3.0)
- Dense, sparse and BM25 full-text search in one engine
- Apache 2.0, with Zilliz Cloud as a managed exit
What's not
- Cluster wants 32 GB RAM minimum, 128 GB recommended, plus Kubernetes
- Auth off by default; root password is Milvus
- Most published benchmarks come from Zilliz
- 3.0 storage formats block rollback once enabled
Best for
Platform teams running vector search at hundreds of millions to billions of vectors.
Alternatives
Milvus: common questions
- Is Milvus worth it?
- Built for billions of vectors and priced in operational effort; below a few hundred million, it is more database than most teams need. We rate it 4.4 out of 5.
- How much does Milvus cost?
- Free and open source under Apache 2.0. Zilliz Cloud is the managed service, with a free tier; published paid prices vary by source, so use Zilliz's calculator.
- What are the downsides of Milvus?
- Cluster wants 32 GB RAM minimum, 128 GB recommended, plus Kubernetes; auth off by default; root password is Milvus; most published benchmarks come from Zilliz; 3.0 storage formats block rollback once enabled.
- Who is Milvus best for?
- Platform teams running vector search at hundreds of millions to billions of vectors.
- How much does Milvus cost for a team or in production?
- Self-hosted: the docs recommend 8+ cores and 128 GB RAM per cluster with NVMe. Zilliz Cloud Dedicated starts from $63 per million vectors a month performance-optimised, $16 capacity-optimised and $5 tiered; the free tier gives 5 GB and up to 5 collections, and Enterprise starts from $197 a month with SSO and private endpoints.
- Is Milvus safe for company data?
- Self-hosted Milvus sends nothing to Zilliz; data lives in your object storage and etcd. Authentication must be enabled by hand and the root password changed from Milvus. Keep port 9091 private: CVE-2026-26190 (CVSS 9.8) exposed an unauthenticated API there before 2.5.27/2.6.10, and a 2026 import flaw that bypassed collection RBAC was fixed in 3.0.3.
- What are the best Milvus alternatives?
- The closest alternatives we have reviewed are Qdrant, Weaviate, pgvector and LanceDB.
Answers checked Oct 23, 2026.