Todos los productos
Search
Centro de documentos

PolarDB:Parallel query parameters

Última actualización: Sep 05, 2026

PolarDB for MySQL expone dos grupos de elementos de configuración para la función de consulta paralela elástica: los parámetros de clúster que se establecen en la consola de PolarDB y las variables de estado a nivel de sesión que se consultan durante la ejecución.

Parámetros de consulta paralela

Nota

Todos los parámetros de clúster en la consola de PolarDB usan el prefijo loose_ para mantener la compatibilidad con el archivo de configuración de MySQL. Cuando modifique parámetros en la consola de PolarDB, seleccione aquellos que incluyen el prefijo loose_.

A continuación se muestran los parámetros que controlan el comportamiento de la consulta paralela elástica. Estos abarcan el grado de paralelismo (DOP) de consultas individuales, el presupuesto total de workers, el comportamiento de la cola y los umbrales de costo y cantidad de filas que activan la ejecución paralela.

Parámetro

Ámbito

Descripción

loose_max_parallel_degree

Global, sesión

El DOP máximo para una sola consulta. Establece el límite superior en la cantidad de parallel workers para dicha consulta. Valores válidos: 0–1024. Valor predeterminado: 0 (consulta paralela elástica deshabilitada).

loose_max_parallel_workers

Global

La cantidad máxima de parallel workers en todas las consultas. Las consultas que superan este límite se envían a la cola. Valores válidos: 1–10,000. Valor predeterminado: el doble de la cantidad de núcleos de CPU.

loose_queuing_parallel_degree_limit

Global

La suma máxima de valores de DOP permitida en la cola en un momento dado. Las consultas que superan este límite recurren a la ejecución secuencial. Valores válidos: 0–10,000. Valor predeterminado: 64.

loose_pq_max_queuing_time

Global, sesión

El tiempo máximo que una consulta puede esperar en la cola. Las consultas que superan este límite recurren a la ejecución secuencial. Valores válidos: 0–18,446,744,073,709,551,615. Valor predeterminado: 200 (milisegundos).

loose_parallel_degree_policy

Global

La directiva de selección de DOP para consultas individuales. Valores válidos: TYPICAL, AUTO, REPLICA_AUTO (predeterminado). Para más detalles, consulte Directivas de DOP.

loose_records_threshold_for_parallelism

Sesión

La cantidad mínima de filas que una consulta debe examinar antes de que el optimizador considere la ejecución paralela. Valores válidos: 0–18,446,744,073,709,551,615. Valor predeterminado: 10000.

loose_cost_threshold_for_parallelism

Sesión

El costo mínimo de ejecución secuencial antes de que el optimizador considere la ejecución paralela. Valores válidos: 0–18,446,744,073,709,551,615. Valor predeterminado: 50000.

loose_records_threshold_for_mpp

Sesión

La cantidad mínima de filas examinadas de una tabla involucrada en una instrucción de consulta antes de que el optimizador considere la consulta paralela elástica multinodo. Valores válidos: 0–18,446,744,073,709,551,615. Valor predeterminado: 0 (N × loose_records_threshold_for_parallelism, donde N es la cantidad de nodos del clúster).

loose_cost_threshold_for_mpp

Sesión

El costo mínimo de ejecución secuencial antes de que el optimizador considere la consulta paralela elástica multinodo. Valores válidos: 0–18,446,744,073,709,551,615. Valor predeterminado: 0 (N × loose_cost_threshold_for_parallelism, donde N es la cantidad de nodos del clúster).

Notas sobre los parámetros

loose_max_parallel_degree

El optimizador de PolarDB puede ejecutar la consulta principal y las subconsultas mediante planes de ejecución paralela independientes. Cuando se usan planes separados, la cantidad total de workers corresponde a la suma de los workers de la consulta principal y de todas las subconsultas. En este caso, no se limita por loose_max_parallel_degree por cada subconsulta. Si se utiliza el mismo plan, la cantidad total de workers no puede superar loose_max_parallel_degree.

La configuración de la consola y loose_max_parallel_degree interactúan de la siguiente manera:

  • Si la consulta paralela elástica está habilitada en la consola de PolarDB y también se configuró loose_max_parallel_degree, prevalece la configuración de la consola. Habilite la consulta paralela elástica en la consola de PolarDB para la mayoría de los escenarios.

  • Si la consulta paralela elástica no está habilitada en la consola de PolarDB, pero loose_max_parallel_degree tiene un valor mayor que 0, la función se habilita automáticamente.

loose_max_parallel_workers

En un clúster serverless, el valor de loose_max_parallel_workers se ajusta automáticamente conforme escalan las especificaciones de los nodos. Para conocer los detalles de la directiva de colas, consulte Parameters that define the queuing policies of parallel queries.

loose_parallel_degree_policy

Valor

Comportamiento

TYPICAL

El DOP siempre se establece en loose_max_parallel_degree, sin importar la carga de la base de datos ni la utilización de la CPU.

AUTO

El optimizador habilita o deshabilita la consulta paralela elástica según la carga de la base de datos (incluida la utilización de la CPU) y selecciona el DOP con base en el costo de la consulta.

REPLICA_AUTO (predeterminado)

Los nodos de solo lectura determinan si se habilita la consulta paralela elástica según la carga de la base de datos y seleccionan el DOP con base en el costo de la consulta. El nodo principal no ejecuta consultas paralelas elásticas.

loose_records_threshold_for_parallelism

Si la mayoría de sus consultas son sencillas y manejan volúmenes pequeños de datos, establezca este umbral como mínimo en 2000 para evitar que la ejecución paralela se active de forma innecesaria.

Configuraciones recomendadas

Utilice las siguientes recomendaciones como punto de partida para la configuración de su clúster:

Objetivo

Recomendación

Habilitar la consulta paralela

Establezca loose_max_parallel_degree en un valor mayor que 0 o habilite la función en la consola de PolarDB.

Limitar el consumo de parallel workers

Reduzca loose_max_parallel_workers respecto a su valor predeterminado (el doble de la cantidad de núcleos de CPU) si las consultas paralelas consumen demasiados recursos. Ajuste este valor según lo observado en Total_running_parallel_workers.

Evitar paralelismo innecesario en cargas OLTP

Aumente loose_records_threshold_for_parallelism a 2000 o más si la mayoría de las consultas son sencillas y acceden a conjuntos de datos pequeños.

Restringir la consulta paralela a nodos de solo lectura

Use loose_parallel_degree_policy = REPLICA_AUTO (valor predeterminado) para evitar que el nodo principal asuma la sobrecarga de las consultas paralelas.

Ajustar la consulta paralela multinodo

Deje loose_records_threshold_for_mpp y loose_cost_threshold_for_mpp en su valor predeterminado de 0 para heredar los umbrales de un solo nodo escalados según la cantidad de nodos. Auméntelos únicamente si el paralelismo multinodo se activa con demasiada facilidad.

Variables de consulta paralela

Use estas variables de estado para supervisar la consulta paralela elástica durante la ejecución y diagnosticar por qué no se activa la ejecución paralela en ciertas consultas. Consúltelas con SHOW GLOBAL STATUS o SHOW SESSION STATUS.

Variable

Ámbito

Descripción

Parallel_workers_created

Global, sesión

La cantidad total de parallel workers creados desde que inició la sesión.

Gather_records

Global, sesión

La cantidad total de registros recopilados por los parallel workers.

PQ_refused_over_total_workers

Global, sesión

La cantidad de consultas que recurrieron a la ejecución secuencial porque se alcanzó el límite total de parallel workers (loose_max_parallel_workers).

PQ_refused_over_max_queuing_time

Global, sesión

La cantidad de consultas que recurrieron a la ejecución secuencial porque el tiempo de espera en la cola superó loose_pq_max_queuing_time.

Total_running_parallel_workers

Global

La cantidad de parallel workers que se están ejecutando actualmente.

Si PQ_refused_over_total_workers o PQ_refused_over_max_queuing_time aumenta, significa que las consultas paralelas se están limitando debido a la contención de recursos. Aumente loose_max_parallel_workers o loose_pq_max_queuing_time para reducir los casos en los que se recurre a la ejecución secuencial.