Milvus vs. TiDB
Compare Milvus vs. TiDB by the following set of capabilities. We want you to choose the best database for you, even if it’s not us.
Milvus vs. TiDB on Scalability
Yes. At the component level (which provides more fine-grained scalability).
Yes.
Dynamic segment placement
Both
Milvus scalability
Regarding scalability, Milvus uses worker nodes for each type of action (components to handle connections, data nodes to handle ingestion, index nodes to index, and query nodes to search). Each node has its own assigned CPU and memory resources. Milvus can dynamically allocate new nodes to an action group, speeding up operations or reducing the number of nodes, thus freeing resources for other actions. Dynamically allocating nodes allows for easier scaling and resource planning and guarantees latency and throughput.
TiDB
TiDB is designed with scalability as one of its core features. It offers both horizontal and vertical scaling capabilities to handle growing workloads and data volumes.
Milvus vs. TiDB on Functionality
Performance is the biggest challenge with vector databases as the number of unstructured data elements stored in a vector database grows into hundreds of millions or billions, and horizontal scaling across multiple nodes becomes paramount.
Furthermore, differences in insert rate, query rate, and underlying hardware may result in different application needs, making overall system tunability a mandatory feature for vector databases.
Yes (DiskANN)
Yes. Sparse & Dense Vectors and Scalar filtering.
Yes, vector search & SQL search
HNSW
No. HNSW only
Milvus functionality
- Milvus supports multiple in-memory indexes and table-level partitions results in the high performance required for real-time information retrieval systems.
- RBAC support is a requirement for enterprise-grade applications.
- In regards to partitions, by limiting searches to one or several subsets of the database, partitions can provide a more efficient way to filter data compared to static sharding, which can introduce bottlenecks and require re-sharding as data grows beyond server capacity. Partitions are a great way to manage your data by grouping it into subsets based on categories or time ranges. This can help you to easily filter and search through large amounts of data, without having to search through the entire database every time.
- No single Index type can fit all use cases since each use case will have different tradeoffs With more index types supported, you have more flexibility to find the balance between accuracy, performance and cost.
TiDB
TiDB offers vector search through its serverless cluster and supports vectors with a maximum dimension of 16,000. The Vector data type in TiDB is designed to store single-precision floating-point numbers (Float32). It only supports cosine distance and L2 distance for similarity measurement.
Milvus vs. TiDB on Purpose-built
What’s your vector database for?
A vector database is a fully managed solution for storing, indexing, and searching across a massive dataset of unstructured data that leverages the power of embeddings from machine learning models. A vector database should have the following features:
- Scalability and tunability
- Multi-tenancy and data isolation
- A complete suite of APIs
- An intuitive user interface/administrative console
No, vector search is an add-on to TiDB Cloud serverless.
No. TiDB does not provide specific SDKs. Instead, it is designed to be compatible with MySQL, which means TiDB can be used with any language with MySQL client or driver support.
Milvus vs. TiDB: what’s right for me?
Milvus
Milvus is a fully open source and independent project, maintained by a number of companies and individuals, some of whom also offer commercial services and support. Graduate of LF AI Data. License: Apache-2.0 license
TiDB
TiDB is an open-source distributed SQL database for OLAP and OLTP workloads. It now offers a vector search capability (in public beta) as an add-on to its SaaS solution, TiDB Cloud Serverless.
Apache 2.0