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;

后续步骤