首页/AI/RAG 与向量库速查/Milvus 分区与分区键

Milvus 分区与分区键

分区(partition)把集合内的数据按业务维度物理划分,检索可限定分区减少扫描量;分区键(partition key)面向多租户场景,数据按键值自动路由,天然隔离租户查询。

RAG 与向量库速查AI更新于 2026-10-12

手动分区

手动分区
client.create_partition("kb", partition_name="tenant_42")
client.insert("kb", data=rows, partition_name="tenant_42")
res = client.search("kb", data=[q_vec], limit=10,
                    partition_names=["tenant_42"], output_fields=["source"])

分区键(建集合时指定)

分区键(建集合时指定)
schema.add_field("tenant_id", datatype="VARCHAR", max_length=32, is_partition_key=True)
# 写入时按 tenant_id 自动路由;查询需在 filter 中带上 tenant_id
分区数量过多会带来元数据与调度开销;租户规模适中时优先分区键而非逐租户建分区。

易错点

  • 把高基数维度(如时间戳)当分区键,分区数量爆炸
  • 分区键查询忘记带对应过滤条件,跨租户扫描失去隔离收益

数据来源与参考

  • Milvus 官方文档(Partition / Partition Key)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌