并行查询参数说明

本章节介绍了并行查询功能相关的参数和变量。

并行查询相关参数

说明

集群参数在PolarDB控制台上都已加上MySQL配置文件的兼容性前缀loose_。如果您需要在PolarDB控制台修改参数,请选择带loose_前缀的参数进行修改。

参数名

级别

描述

loose_max_parallel_degree

Global、Session

单个查询的最大并行度,即并行执行的最大Worker数量。

  • 取值范围:[0-1024]。

  • 默认值:0,表示关闭并行查询。

说明
  • PolarDB优化器可能会对主查询和子查询分别并行执行,如果同时并行执行,它们的最大Worker数不能超过loose_max_parallel_degree的值,整个查询使用的Worker数为主查询和子查询使用的Worker数之和。

  • 控制台中的并行查询设置与loose_max_parallel_degree参数说明如下:

    • 若控制台和系统参数loose_max_parallel_degree均有设置,则以控制台配置为准。因此,建议使用控制台来开启并行查询。

    • 若控制台未开启并行查询,但系统参数loose_max_parallel_degree被设置为大于0时,相当于默认开启了单机并行。

loose_max_parallel_workers

Global

最大允许同时运行的并行worker线程数,超过该值后并行查询需要进入任务队列中等待。

  • 取值范围:[1-10000]

  • 默认值为CPU核数的2

说明
  • loose_max_parallel_workers参数在Serverless集群中会根据节点规格的弹性扩展/收缩而进行调整。

  • 更多关于并行查询排队策略的详细介绍,请参见并行资源控制策略配置

loose_queuing_parallel_degree_limit

Global

最大允许同时进入并行排队的并行度总和,超过该值后查询将被禁止并行查询,回退为串行执行。

  • 取值范围:[0-10000]

  • 默认值:64

loose_pq_max_queuing_time

Global、Session

并行查询在队列中最大等待时间,等待时间超出该值后直接回退为串行执行。

  • 取值范围:[0-18446744073709551615]

  • 默认值:200

  • 单位:毫秒

loose_records_threshold_for_parallelism

Session

若优化器估算出语句中存在扫描记录数超过该阈值的表,优化器会考虑选择并行执行计划。

  • 取值范围:[0-18446744073709551615]。

  • 默认值:10000。

说明

若您的业务量较小或复杂查询业务并发较低,您可以选择将该阈值设置为2000或以上。

loose_cost_threshold_for_parallelism

Session

若优化器估算查询的串行执行代价超过该阈值,优化器会考虑选择并行执行计划。

  • 取值范围:[0-18446744073709551615]。

  • 默认值:50000。

loose_records_threshold_for_mpp

Session

查询语句中表扫描行数超过该阈值后,优化器会考虑选择多机并行执行方式。

  • 取值范围:[0-18446744073709551615]。

  • 默认为0,含义是自动取值loose_records_threshold_for_parallelismN倍,NePQ集群的节点个数

loose_cost_threshold_for_mpp

Session

查询语句的串行执行代价超过该阈值后,优化器会考虑选择多机并行执行方式。

  • 取值范围:[0-18446744073709551615];

  • 默认值为0,含义是自动取值loose_cost_threshold_for_parallelismN倍,N为节点个数

并行查询相关变量

变量名

级别

描述

Parallel_workers_created

Global、Session

Session启动开始,生成Parallel Worker的个数。

Gather_records

Global、Session

Gather记录总数。

PQ_refused_over_total_workers

Global、Session

由于总Worker数限制没有启用并行的查询数。

PQ_refused_over_max_queuing_time

Global、Session

由于并行查询排队超时没有启动并行的查询数。

Total_running_parallel_workers

Global

当前正在运行的Parallel Worker的数目。