このドキュメントでは、OceanBase データベースの密ベクトルインデックスの概念とタイプについて説明します。以下、密ベクトルインデックスを単にインデックスと呼びます。
インデックスは、OceanBase データベースが密ベクトルデータ(ほとんどの要素がゼロ以外の値を持つベクトル)向けに提供する効率的なインデックスタイプです。インデックスは主にベクトル検索の高速化に使用され、距離関数(L2、内積、コサイン距離)を用いた最近傍探索をサポートします。
インデックスタイプ
OceanBase データベースのインデックスには、主に HNSW シリーズと IVF シリーズがあります。
HNSW シリーズ
メモリベースのグラフ構造インデックスで、メモリに完全にロードする必要があります。DML 操作とリアルタイム検索をサポートし、高い検索性能と再現率を備えています。
インデックスタイプ |
説明 |
|---|---|
| HNSW | インデックス列の最大次元は 4,096 です。HNSW インデックスはメモリインデックスであり、メモリに完全にロードする必要があります。 |
| HNSW_SQ | HNSW_SQ インデックスは、HNSW インデックスと同等の構築速度、検索性能、再現率を提供しますが、総メモリ使用量は元の 1/2 ~ 1/3 に削減されます。 |
| HNSW_BQ | HNSW_BQ インデックスの再現率は HNSW インデックスよりわずかに低いものの、メモリ使用量は大幅に削減されます。BQ 量化圧縮アルゴリズム(Rabbitq)により、ベクトルを元のサイズの 1/32 まで圧縮できます。ベクトルの次元が高くなるにつれて、HNSW_BQ インデックスのメモリ最適化効果はより顕著になります。 |
詳細については、本文末の関連ドキュメントを参照してください。
IVF シリーズ
ディスクベースのインデックスで、常駐メモリを消費しないため、データ量が多くコストを重視するシナリオに適しています。
インデックスタイプ |
説明 |
|---|---|
| IVF | データベーステーブルに基づいて実装された IVF インデックスで、常駐メモリを消費しません。 |
| IVF_PQ | データベーステーブルに基づいて実装された IVF_PQ インデックスで、常駐メモリを消費しません。IVF を基盤として PQ 量化技術を適用しており、インデックスの再現率は IVF インデックスよりわずかに低いものの、性能は IVF インデックスより高いです。また、PQ 量化圧縮アルゴリズムは一般的なシナリオでベクトルを元のサイズの 1/16 ~ 1/32 まで圧縮できます。 |
詳細については、本文末の関連ドキュメントを参照してください。
構文の説明
インデックスは、テーブル作成時の同時作成と後からの作成の 2 つの方法で作成できます。検索構文と削除構文は通常のベクトルインデックスと同じです。異なるインデックスタイプの作成構文、パラメータ説明、検索構文、および例については、以下を参照してください:
- HNSW シリーズインデックス、HNSW、HNSW_SQ、HNSW_BQ の作成、検索、削除の構文説明と例を含みます。
- IVF シリーズインデックス、IVF、IVF_PQ の作成、検索、削除の構文説明と例を含みます。
関連ドキュメント
- インデックスの選択については、インデックスタイプの選択を参照してください。
- ベクトルインデックスのメモリ管理
- ベクトルインデックスの監視とメンテナンス