向量数据库参数
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时不会产生中心点,数据不会聚类分布。
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操作中是否进行创建中心点。 |