Cloud SQL 資料定義語言 (DDL)

本頁面定義 Cloud SQL 擴充功能的 MySQL 資料定義語言 (DDL) 陳述式語法。

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:必要。用於計算兩個向量相似度的數學公式。您必須在這個參數中設定與 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:必要。用於計算兩個向量相似度的數學公式。您必須在這個參數中設定與 approx_distance 搜尋選項中距離相同的測量單位。支援的橫向有:
    • L2_SQUARED
    • COSINE
    • DOT_PRODUCT

示例

以下範例說明如何在 t1 資料表上新增向量索引。

ALTER TABLE t1 ADD VECTOR INDEX index1(j)
USING SCANN QUANTIZER = SQ8 DISTANCE_MEASURE = l2_squared;

後續步驟