跳到主要内容

Truncate Collection

Truncate Collection 会移除 Collection 中的所有 Entity,同时保留 Collection 的 Schema、约束和 Index。相比删除 Entity,Truncate Collection 更高效,因为它会从 Search 和 Query 中隐藏当前时间戳之前已 flush 的所有 Entity,并在后台删除这些 Entity。

📘说明

此功能仅适用于 Managed Collection。

概述

Collection Truncation 是一种高性能操作,可以从 Collection 中移除所有 Entity,同时完整保留其结构定义,包括 Schema、约束和 Index。这使 Collection 可以立即准备接收新数据,而无需重新配置或重建 Index。

与逐条处理记录并生成大量事务日志的常规删除方法不同,Truncation 通过优化的两步机制运行:

  1. 立即逻辑移除:在 Truncation 时间戳之前插入或删除的所有 Entity 都会立即 flush,并从 Search 和 Query 中隐藏,使其对后续操作不可见。

  2. 高效物理清理:系统会在后台对所有受影响的数据 Segment 执行垃圾回收,消除逐 Entity 删除处理带来的开销。

Truncation 非常适合需要快速、完整重置数据集的场景,例如测试环境刷新、Pipeline 阶段清理或周期性数据生命周期管理;在这些场景中,性能和资源效率都很关键。

示例

以下代码示例假设你已经有一个名为 my_collection 的 Collection。

python
from pymilvus import MilvusClient, DataType

client = MilvusClient(
uri="YOUR_CLUSTER_ENDPOINT",
token="YOUR_CLUSTER_TOKEN"
)

client.truncate_collection(
collection_name="my_collection"
)
plaintext
// C++
Ctrl I