更新时间:2025-05-29 GMT+08:00

向量数据库参数

maintenance_work_mem

参数说明指定在维护性操作中使用的最大的内存量。

参数类型整型

参数单位kB

取值范围1024 ~ 2147483647

默认值65536(即64MB)。

设置方式:该参数属于USERSET类型参数,请参考17.2-表 GUC参数分类中对应设置方法进行设置例如,不带单位取值1024,表示maintenance_work_mem为1024kB;带单位取值1MB,表示maintenance_work_mem为1MB。取值如果要带单位,必须为kB、MB、GB。

设置建议:参数取值一定要大于向量索引构建时对数据进行采样的所需内存。对于gsivfflat索引,采样所需内存估算为max(nlist, nlist2) * dim * 0.2kB。对于gsdiskann索引,开启pq时,采样所需内存为dim * 80kB。

设置不当的风险与影响:该参数设置过小,会导致索引无法正常创建,其他需要较大内存的业务也会失败。

diskann_probe_ncandidates

参数说明指定利用gsdiskann索引检索向量时的候选集合大小。

参数类型整型

参数单位

取值范围1 ~ 32768

默认值128

设置方式:该参数属于USERSET类型参数,请参考17.2-表 GUC参数分类中对应设置方法进行设置

设置建议:

  • 推荐使用默认值,建议在使用中通过实验获得最优的参数配置。
  • diskann_probe_ncandidates参数可以对于个别使用gsdiskann索引的查询进行设置和生效,建议只在会话中用set进行设置,不建议使用gs_guc进行全局设置。

设置不当的风险与影响:该参数设置过大会导致查询性能下降;设置过小会导致召回率不足。

gsivfflat_probes

参数说明指定利用gsivfflat索引检索向量时待搜索的倒排列表的数量,超过gsivfflat索引的倒排列表总数时执行全表搜索。gsivfflat索引的倒排列表总数由创建索引时参数ivf_nlist指定。

参数类型整型

参数单位

取值范围1 ~ 32768

默认值5

设置方式:该参数属于USERSET类型参数,请参考17.2-表 GUC参数分类中对应设置方法进行设置

设置建议:推荐设置为索引创建时参数ivf_nlist取值的3%。建议在使用中通过实验获得最优的参数配置。

设置不当的风险与影响:该参数设置越大,搜索时间越长,但结果越准确。

gsivfflat_secondary_probes

参数说明指定利用gsivfflat索引检索向量时待搜索的二级倒排列表的数量,超过二级倒排列表总数时执行全表搜索。二级倒排列表总数由创建索引时参数ivf_nlist2指定。

参数类型整型

参数单位

取值范围1 ~ 32768

默认值5

设置方式:该参数属于USERSET类型参数,请参考17.2-表 GUC参数分类中对应设置方法进行设置

设置建议:推荐设置为索引创建时参数ivf_nlist2取值的1/4~1/2之间。建议在使用中通过实验获得最优的参数配置。

设置不当的风险与影响:该参数设置越大,搜索时间越长,但结果越准确。

gsivfflat_secondary_probes效果和gsivfflat_probes相同,只有向量索引为双层索引时生效,可以有效加速查询速度。建议在使用中通过实验获得最优的参数配置。

enable_vectordb

参数说明表示是否允许创建向量索引,是否允许对向量索引增加、修改和查询。向量数据库详细功能请参见《向量数据库开发指南》手册中的“使用向量数据库”章节。

参数类型布尔型

参数单位

取值范围

  • on:表示允许。
  • off:表示不允许。

默认值off

设置方式:该参数属于SIGHUP类型参数,请参考17.2-表 GUC参数分类中对应设置方法进行设置

设置建议:当不允许用户使用向量索引等向量数据库功能时,请设置为off,否则请设置为on。

设置不当的风险与影响:参数取值决定了用户能否使用向量数据库的功能,设置错误会导致用户使用数据库功能范围错误。

vectordb_node_retrieval_num_percent

参数说明用于控制KMEANS分布下进行向量查询时查找数据的DN节点比例。比例越低,性能越高,准确率下降。

参数类型浮点型

参数单位

取值范围0 ~ 1

默认值1.0

设置方式:该参数属于USERSET类型参数,请参考17.2-表 GUC参数分类中对应设置方法进行设置

设置建议:建议设置为1.0。当召回率(部分节点的扫描结果相对于全量扫描结果的召回正确比例)降低时,可适当增加该值。

当业务查找的距离计算与设定的分布列距离一致时,推荐设置值为默认值,可以增加查找性能;当业务查找的距离计算与设定的分布列距离不一致时,推荐设置为1.0,保证查找的召回率准确。

设置不当的风险与影响:该参数的使用效果是控制向量查找的节点数量,所以参数值越小,查找范围越小,查找时间越短,但同时返回的结果不是最优结果。参数值越大,查找节点越多,返回结果越准确,时间越长。用户需要参考向量数据的集中情况:数据集中(短期内进行过数据重分布),参数建议值偏小;数据分散(长期不更新中心点进行数据重分布),参数建议值偏大。当存在查找的距离和分布列距离不一致的情况,参数值<1.0会导致数据查找范围错误,查找召回率低。

vectordb_need_copy_auto_redistribute

参数说明用于控制向量分布列的数据表在没有中心点的情况下,进行copy操作时是否创建中心点。

参数类型布尔型

参数单位

取值范围:

  • on:表示开启。
  • off:表示关闭。

默认值on

设置方式该参数属于USERSET类型参数,请参考《管理员指南》中的“配置运行参数 > 设置参数”章节对应设置方法进行设置。

设置建议:如果不需要在数据copy过程中进行自动重分布,请设置为off,否则请设置为on,但当DN节点数小于两个时,设置为on时也不会进行自动重分布。

设置不当的风险与影响:开启状态下,数据copy时进行重分布有短暂耗时,会增加copy所需时间;当设置为off时不会产生中心点,数据不会聚类分布。

表1 涉及向量数据库的GUC参数

GUC参数名

级别

取值范围(默认值)

描述

maintenance_work_mem

会话级(session)

[1024,2147483647]/[1MB,2048GB)

(65536/64MB)

指定在维护性操作中使用的最大的内存量。默认单位是KB。

diskann_probe_ncandidates

会话级(session)

[1, 32768](128)

表示利用gsdiskann索引检索向量时的候选集合大小。

gsivfflat_probes

会话级(session)

[1, 32768](5)

表示待搜索的倒排列表的数量,超过倒排列表总数时执行全表搜索。

gsivfflat_secondary_probes

会话级(session)

[1, 32768](5)

表示待搜索的二级倒排列表的数量,超过二级倒排列表总数时执行全表搜索。

enable_vectordb

全局参数(SIGHUP)

[off,on](off)

高阶特性,表示是否允许创建向量索引,是否允许对向量索引增加、修改和查询。

vectordb_node_retrieval_num_percent

会话级(session)

[0,1](0.5)

用于控制KMEANS分布下进行向量查询时查找数据的DN节点比例。比例越低性能越高准确率下降。

vectordb_need_copy_auto_redistribute

会话级(session)

[off,on](on)

用于控制向量分布列的数据表在没有中心点的情况下在copy操作中是否进行创建中心点。