---
title: "向量数据库 VectorDBBench 测试 - OceanBase 数据库 V4.3.5 | OceanBase 文档中心"
description: 向量数据库 VectorDBBench 测试 VectorDBBench 是一款为主流向量数据库和云服务提供基准测试结果的工具，本文档通过 VectorDBBench 测试 OceanBase 向量数据库的性能。VectorDBBench 的设计注重易用性，可以轻松复现结果或测试新系统。 准备工作 部署 V4.3.5…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.5 LTS

# 向量数据库 VectorDBBench 测试

更新时间：2026-04-07 20:57:20

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.5/zh-CN/640.ob-vector-search/700.ob-vector-search-bench-test.md)  

VectorDBBench 是一款为主流向量数据库和云服务提供基准测试结果的工具，本文档通过 VectorDBBench 测试 OceanBase 向量数据库的性能。VectorDBBench 的设计注重易用性，可以轻松复现结果或测试新系统。

## 准备工作

- 部署 V4.3.5 及以上版本 OceanBase 集群。
 - 创建 MySQL 模式租户。请参见[创建租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013128)。
 - 安装 Python 3.11 及以上版本。示例使用 Conda 安装。

  ```bash
  # 下载安装 Conda
  mkdir -p ~/miniconda3
  wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
  bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
  rm ~/miniconda3/miniconda.sh

  # 重新打开终端，初始化 Conda
  source ~/miniconda3/bin/activate
  conda init --all

  # 新建和初始化 VectorDBBench 所需的 Python 环境
  conda create -n vdb python=3.11
  conda activate vdb

  ```
 - 连接到业务租户，调优 HNSW 向量索引搜索相关内存和查询参数：

  ```sql
  -- ob_vector_memory_limit_percentage 设置为 30%。
  ALTER SYSTEM SET ob_vector_memory_limit_percentage = 30;
  -- ob_query_timeout 设置为 24 小时。
  SET GLOBAL ob_query_timeout = 86400000000;
  -- max_allowed_packet 设置为 1GB。
  SET GLOBAL max_allowed_packet=1073741824;
  -- ddl_thread_score 和 parallel_servers_target 设置创建建索引时的并行度
  ALTER SYSTEM SET ddl_thread_score = 8; -- DDL 操作的并行度
  SET GLOBAL parallel_servers_target = 624; -- 数据库服务器可以同时处理的并行查询数量

  ```

  其中 `ob_vector_memory_limit_percentage = 30` 只是示例值，具体请根据租户内存和业务量调整，计算逻辑请参见 [ob_vector_memory_limit_percentage](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002015585)。

## 推荐配置

推荐配置租户的资源规格为：

| 配置项 | 值 |
| --- | --- |
| 内存 | 64G |
| CPU | 16C |

## 测试方法

### 克隆 VectorDBBench 代码

#### 注意

建议将 VectorDBBench 和 OceanBase 集群部署在不同机器上，以避免 CPU 资源争夺，提高测试结果的可靠性。

克隆测试工具 VectorDBBench 代码到本地。

```bash
git clone https://github.com/zilliztech/VectorDBBench.git

```

### 安装依赖

进入 VectorDBBench 目录安装依赖。

```bash
cd VectorDBBench
pip install .

```

### 运行测试

运行 VectorDBBench。这里给出 HNSW 索引和 IVF 索引两个示例。

#### HNSW 索引示例

```bash
# $host，$port，$user 需替换为实际的 OceanBase 数据库连接信息。
vectordbbench oceanbasehnsw --host $host --port $port --user $user --database test --m 16 --ef-construction 200 --ef-search 40 --k 10 --case-type Performance768D1M --index-type HNSW

```

更多参数信息可以通过以下命令查看：

```bash
vectordbbench oceanbasehnsw --help

```

几个常用选项具体说明如下：

- `--num-concurrency`：用于调整并发度。 VectorDBBench 会按指定的并发去执行向量查询，并选择最大的 QPS（Queries Per Second，每秒查询数）作为最终结果。
 - `--skip-drop-old`/`--skip-load`：表示跳过删除旧数据和导数的步骤。在命令行加上这两个选项后，命令仅执行向量查询操作，而不会删除旧数据重新导数。
 - `--k`：指定向量查询中要返回的前 K 个近邻结果的个数。
 - `--ef-search`：HNSW 查询参数，表示查询时的候选集大小。
 - `--index-type`：指定索引类型，目前支持 `HNSW`、`HNSW_SQ` 和 `HNSW_BQ`。

#### IVF 索引示例

```bash
vectordbbench oceanbaseivf --host $host --port $port --user $user --database test --nlist 1000 --sample_per_nlist 256 --ivf_nprobes 100  --case-type Performance768D1M --index-type IVF_FLAT

```

几个常用选项说明如下：

- `--sample_per_nlist`：每个聚类中心的取样的数据量。默认值 `256`。
 - `--ivf_nprobes`：用于设置在进行向量索引查询时，本次查询搜索多少个最近的聚类中心。默认值为 `8`，值越大，召回率越高，但同时搜索时间也会增加。
 - `--index-type`：指定索引类型，目前支持 `IVF_FLAT`。

```bash
vectordbbench oceanbaseivf --help

```

## 常见问题

### 第一次执行测试很慢正常吗？

第一次执行测试需要在 AWS S3 存储下载所需数据集，时间可能会相对较久，为正常现象。

### 可以自定义修改测试代码吗？

可以。如果你自定义修改了测试代码，需要重新执行 `pip install .` 安装后再运行测试。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
