Cloud SQL 資料定義語言 (DDL)

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

VECTOR 陳述式

本節提供 VECTOR 陳述式相關資訊。

建立向量索引

建立向量索引。

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;

後續步驟