首批通过分布式安全可靠测评,为关键业务系统打造
向量索引概述
更新时间:2026-02-25 18:01:07
本文档介绍 OceanBase 数据库支持的向量索引类型及其特点。
索引类型
OceanBase 数据库支持以下类型的向量索引:
- 稠密索引
- 稀疏索引
- 语义索引
稠密索引
OceanBase 数据库支持稠密向量索引,包含 HNSW 系列和 IVF 系列。为方便阅读下文简称为稠密索引。
| 索引类型 | 描述 |
|---|---|
| HNSW | 索引列最大维度为 4096。HNSW 索引是内存索引,需要完整载入内存。 |
| HNSW_SQ | HNSW_SQ 索引提供了和 HNSW 索引相近的构建速度,搜索性能,召回率,但总的内存使用降低到原本的 1/2~1/3。 |
| HNSW_BQ | HNSW_BQ 索引的召回率略低于 HNSW 索引,但显著减少了内存占用。BQ 量化压缩算法(Rabitq)能将向量压缩至原大小的 1/32,随着向量维度增加,HNSW_BQ 索引的内存优化效果更明显。 |
| IVF | 基于数据库表实现的 IVF 索引,可不占用常驻内存。 |
| IVF_PQ | 基于数据库表实现的 IVF_PQ 索引,可不占用常驻内存。在 IVF 基础上应用了 PQ 量化技术,索引的召回率略低于 IVF 索引,性能高于 IVF 索引,同时 PQ 量化压缩算法普遍场景下能将向量压缩至原大小的 1/16 ~ 1/32。 |
稀疏索引
OceanBase 数据库当前版本支持基于内存的稀疏向量索引,为方便阅读简称为内存稀疏索引。内存稀疏索引是 OceanBase 数据库针对稀疏向量数据(大部分元素为零的向量)提供的高效索引类型,需要将索引完整的载入内存,支持 DML 和实时搜索。
说明
内存稀疏索引在当前版本为实验特性,不建议在生产环境使用。
语义索引(Semantic Index)
OceanBase 数据库支持语义索引,其利用 OceanBase 数据库内置的嵌入(Embedding)能力,极大地简化了向量索引的使用流程。它实现了向量概念对用户的透明化:你可以直接写入需要存储的原始数据(如文本),OceanBase 数据库会在内部自动将其转换为向量并建立索引。在搜索时,你同样只需提供原始搜索内容,OceanBase 数据库也会自动进行嵌入并搜索向量索引,从而显著提升了使用的便捷性。
说明
语义索引在当前版本为实验特性,不建议在生产环境使用。
说明与限制
- 距离算法:稠密向量索引支持 L2、内积(IP)、余弦距离作为索引距离算法。
- 距离函数:向量索引搜索支持调用部分距离函数,具体请参见 使用 SQL 函数。
- 过滤条件:支持带有过滤条件的向量搜索。过滤条件可以是标量类型的条件,可以是空间关系,如 ST_Intersects 等。暂不支持多值索引/全文索引/全局索引作为预过滤器。
- 混合搜索:支持同表创建向量索引和全文索引,向量索引包含稠密和内存稀疏。
- Offline DDL:向量索引对 Offline DDL 的支持情况请见 Offline DDL。
- 列存索引:当前版本暂不支持创建列存向量索引。
- NULL 排序:OceanBase 默认采用 NULL first 比较模式,所以对 NULL 值进行排序时会将其放至最前,建议查询的时候加上
NOT NULL条件。