MySQL
  |  PostgreSQL
  |  SQL Server
このページでは、MySQL データ定義言語(DDL)ステートメントに対する Cloud SQL 拡張機能の構文を定義します。
VECTOR ステートメント
このセクションでは、VECTOR ステートメントについて説明します。
CREATE VECTOR INDEX
ベクトル インデックスを作成します。
CREATE VECTOR INDEX index_name
[opt_index_type]
ON table_name (column_name)
[index_options]
where opt_index_type is:
 | USING SCANN
where index_option is :
 USING SCANN
 | [QUANTIZER=SQ8]
 | [NUM_LEAVES=int_value]
 | DISTANCE_MEASURE=L2_SQUARED|DOT_PRODUCT|COSINE
パラメータ
- USING SCANN: 必須。ベクトル インデックスの作成時に使用するインデックス タイプ。このアルゴリズムは ScaNN インデックスを作成します。サポートされる値は- SCANNのみです。このパラメータは変更できません。
- QUANTIZER: 省略可。このパラメータは、高次元ベクトルを圧縮表現にマッピングします。サポートされる値は- SQ8のみです。このパラメータは変更できません。
- NUM_LEAVES: 省略可。作成するパーティション(リーフ)の数を指定します。この設定をデフォルト設定から変更するのは、ANN 検索とデータセットをよく理解している場合に限ってください。指定する数は、ベーステーブル内のエンベディングの数より大きくすることはできません。
- DISTANCE_MEASURE: 必須。2 つのベクトルの類似性を計算する数式。このパラメータには、- approx_distance検索オプションの距離と同じ距離の単位を設定する必要があります。サポートされているラテラルは次のとおりです。- L2_SQUARED
- COSINE
- DOT_PRODUCT
 
例
次の例は、table_name テーブルにベクトル インデックスを作成する方法を示しています。
CREATE
  VECTOR INDEX index1
ON table_name(vector_column_name)
USING SCANN QUANTIZER = SQ8 DISTANCE_MEASURE = l2_squared;
ALTER TABLE
既存のテーブルにベクトル インデックスを追加します。ベクトル検索には、インデックス オプションとして SCANN が必要です。また、量子化タイプは SQ8 にする必要があります。
ALTER TABLE table_name
  ADD VECTOR INDEX index_name(key_part)[index_option];
WHERE key_part is:{ _col_name_[(_length_)] | (_expr_) }
WHERE
  index_option
  is:USING
    SCANN
    | [QUANTIZER = SQ8]
    | [NUM_LEAVES = int_value]
    | DISTANCE_MEASURE
  = L2_SQUARED | DOT_PRODUCT | COSINE
パラメータ
- USING SCANN: 必須。ベクトル インデックスの作成時に使用するインデックス タイプ。このアルゴリズムは ScaNN インデックスを作成します。サポートされる値は- SCANNのみです。このパラメータは変更できません。
- QUANTIZER: 省略可。このパラメータは、高次元ベクトルを圧縮表現にマッピングします。サポートされる値は- SQ8のみです。このパラメータは変更できません。
- NUM_LEAVES: 省略可。作成するパーティション(リーフ)の数を指定します。この設定をデフォルト設定から変更するのは、ANN 検索とデータセットをよく理解している場合に限ってください。指定する数は、ベーステーブル内のエンベディングの数より大きくすることはできません。
- DISTANCE_MEASURE: 必須。2 つのベクトルの類似性を計算する数式。このパラメータには、- approx_distance検索オプションの距離と同じ距離の単位を設定する必要があります。サポートされているラテラルは次のとおりです。- L2_SQUARED
- COSINE
- DOT_PRODUCT
 
例
次の例は、t1 テーブルにベクトル インデックスを追加する方法を示しています。
ALTER TABLE t1 ADD VECTOR INDEX index1(j)
USING SCANN QUANTIZER = SQ8 DISTANCE_MEASURE = l2_squared;
次のステップ
- Cloud SQL でのベクトル検索の概要を確認する。
- インスタンスでベクトル エンベディングを有効または無効にする方法を学習する。
- ベクトル エンベディングを生成する方法を確認する。
- ベクトル インデックスを作成する方法を確認する。
- ベクトル エンベディングで検索を実行する方法を確認する。