Todos los productos
Search
Centro de documentos

PolarDB:Use elastic parallel query (ePQ)

Última actualización: Sep 09, 2026

Conozca cómo habilitar, configurar y controlar ePQ para PolarDB for MySQL. Esta guía incluye los umbrales de ejecución paralela, la sintaxis de hint y los límites conocidos.

Antes de empezar

  • Confirme que su clúster sea compatible con la consulta paralela elástica.

    • Consulta paralela elástica de un solo nodo:

      • Motor de base de datos: 8.0.1 con una versión de revisión 8.0.1.0.5 o posterior.

      • Edición de la base de datos: Enterprise Edition .

    • Consulta paralela elástica de un solo nodo:

      • Motor de base de datos: 8.0.2 con una versión de revisión 8.0.2.1.4.1 o posterior.

      • Edición de la base de datos: Enterprise Edition.

    • Consulta paralela elástica multinodo:

      • Motor de base de datos: 8.0.2 con una versión de revisión 8.0.2.2.6 o posterior.

      • Edición de la base de datos: Enterprise Edition.

  • Revise Limits and compatibility issues antes de habilitar la consulta paralela.

  • Los nodos de solo lectura y los nodos RW admiten la consulta paralela. Sin embargo, esta función está deshabilitada de forma predeterminada en los nodos RW. Para habilitarla en dichos nodos, Adaptively adjust the degree of parallelism.

Habilitar o deshabilitar la consulta paralela

Habilitar

Vaya a PolarDB console. En la página Basic Information del clúster, busque la sección Database Connection. Seleccione el endpoint de destino y haga clic en Configure. En el cuadro de diálogo Edit Endpoint Configuration, enable la consulta paralela y configure el Degree of Parallelism.

Haga clic para expandir los pasos detallados

  1. Inicie sesión en la consola de PolarDB. En el panel de navegación izquierdo, haga clic en Clusters. Seleccione la región donde se encuentra el clúster y luego haga clic en el ID del clúster para ir a la página de detalles.

  2. En la página Basic Information del clúster, busque la sección Database Connection. Seleccione el endpoint de destino y haga clic en Configure.image

  3. En el cuadro de diálogo Edit Endpoint Configuration, enable la consulta paralela y configure el Degree of Parallelism. Los demás parámetros del endpoint se documentan en Configure a database proxy.imageimage

Configuraciones recomendadas y notas:

  • El Degree of Parallelism indica el número máximo de subprocesos de trabajo que una sola consulta puede usar en un nodo de cómputo. El total de subprocesos por consulta equivale al Degree of Parallelism multiplicado por el número de nodos.

  • Aumente el grado de paralelismo de manera gradual. No supere la cuarta parte de la cantidad de núcleos de CPU. Comience con 2. Después de un día, incremente el valor si la carga de la CPU se mantiene baja; deténgase si aumenta.

  • La habilitación de la consulta paralela solo surte efecto en las conexiones nuevas.

  • La configuración de la consola y los parámetros del clúster interactúan de la siguiente manera:

    • El parámetro loose_max_parallel_degree aplica a todos los nodos y conexiones del clúster. Por su parte, los ajustes de la consola solo aplican al endpoint configurado.

    • Si se configuran tanto el ajuste de la consola como loose_max_parallel_degree, el ajuste de la consola tiene prioridad. Use la consola para habilitar la parallel query.

    • Si la parallel query no está habilitada en la consola, pero loose_max_parallel_degree es mayor que 0, la consulta paralela de un solo nodo se habilita de forma predeterminada.

    Nota

    El parámetro loose_max_parallel_degree establece el número máximo de subprocesos de trabajo para la ejecución paralela de una sola consulta. Parameter description.

Deshabilitar

Vaya a PolarDB console. En la página Basic Information del clúster, busque la sección Database Connection. Seleccione el endpoint de destino y haga clic en Configure. En el cuadro de diálogo Edit Endpoint Configuration, disable la consulta paralela.

Haga clic para expandir los pasos detallados

  1. Inicie sesión en la consola de PolarDB. En el panel de navegación izquierdo, haga clic en Clusters. Seleccione la región donde se encuentra el clúster y luego haga clic en el ID del clúster para ir a la página de detalles.

  2. En la página Basic Information del clúster, busque la sección Database Connection. Seleccione el endpoint de destino y haga clic en Configure.image

  3. En el cuadro de diálogo Edit Endpoint Configuration, disable la consulta paralela.image

Nota:

  • Deshabilitar la consulta paralela solo surte efecto en las conexiones nuevas.

  • Después de deshabilitar la consulta paralela en la consola, compruebe que loose_max_parallel_degree también esté establecido en 0.

    Nota

    El parámetro loose_max_parallel_degree establece el número máximo de subprocesos de trabajo para la ejecución paralela de una sola consulta. Parameter description.

Configurar la consulta paralela

PolarDB ofrece varias políticas de control para la consulta paralela, las cuales se resumen a continuación. La lista completa está disponible en Configure parallel resource control policies.

Tipo

Descripción

Umbrales de ejecución paralela del optimizador

PolarDB proporciona dos umbrales. El optimizador considera un plan paralelo cuando una consulta supera cualquiera de ellos.

  • loose_records_threshold_for_parallelism

    Cuando el recuento estimado de exploraciones de una tabla supera este umbral, el optimizador considera un plan paralelo. Valor predeterminado: 10000. Para conjuntos de datos pequeños o una concurrencia de consultas baja, establézcalo en 2000 o más.

    Nota

    El recuento de exploraciones es una estimación basada en las estadísticas de la tabla y podría no ser exacto.

  • loose_cost_threshold_for_parallelism

    Cuando el costo estimado de ejecución secuencial supera este umbral, el optimizador considera un plan paralelo. Valor predeterminado: 50000.

Umbrales de escalado paralelo multinodo

PolarDB proporciona dos umbrales para el escalado paralelo multinodo. El sistema escala horizontalmente cuando se supera cualquiera de ellos.

  • loose_records_threshold_for_mpp

    Cuando el recuento estimado de exploraciones de una tabla supera este umbral, el optimizador pasa de la paralelización de un solo nodo a la multinodo. By default, this value is N times the value of loose_records_threshold_for_parallelism, where N is the number of nodes within the current cluster endpoint.

  • loose_cost_threshold_for_mpp

    Cuando el costo de ejecución secuencial de una consulta supera este umbral, el optimizador escala a la paralelización multinodo. By default, this value is N times the value of loose_cost_threshold_for_parallelism, where N is the number of nodes within the current cluster endpoint.

Controlar la consulta paralela con hints

Los hints controlan la ejecución paralela a nivel de instrucción. Esto le permite anular el comportamiento predeterminado, establecer el grado de paralelismo y especificar qué tablas se van a paralelizar. Por ejemplo, use un hint para acelerar una consulta lenta específica. La sintaxis completa se documenta en Parallel query hint syntax.

¿Puedo usar hints para habilitar la consulta paralela en el endpoint principal de un clúster de PolarDB?

Sí, pero se recomienda usar PolarDB console. For statement-level control, use /*+ PARALLEL(n) */ o /*+ SET_VAR(max_parallel_degree=n) */ para establecer el grado de paralelismo en n. Estos dos hints tienen diferencias:

  • /*+ PARALLEL(n) */ fuerza la ejecución paralela sin importar el tipo de nodo ni el volumen de datos.

  • /*+ SET_VAR(max_parallel_degree=n) */ habilita la ejecución paralela solo si la consulta se enruta a un nodo de solo lectura y las estimaciones de costo y volumen del optimizador lo justifican.

¿Existe algún conflicto entre los parámetros paralelos establecidos mediante hints en una instrucción SQL y la configuración de la consola?

No. Los parámetros de los hints aplican únicamente a la instrucción actual y anulan la configuración global de la consola.

Límites y problemas de compatibilidad

Límites

La ejecución paralela de PolarDB presenta las siguientes limitaciones:

  • Las consultas en tablas que no son InnoDB no se pueden ejecutar en paralelo.

  • Las consultas que usan un índice de texto completo no se pueden ejecutar en paralelo.

  • Las expresiones que contienen Procedures almacenados deben ejecutarse en el nodo líder.

  • Si una tabla se explora mediante Index Merge, la exploración de la tabla no se puede paralelizar.

  • Las instrucciones de consulta dentro de transacciones con nivel de aislamiento serializable no se pueden ejecutar en paralelo.

  • Si el nivel de aislamiento es Repeatable-read, la parte de consulta de las instrucciones INSERT ... SELECT/REPLACE ... SELECT dentro de una transacción no se puede ejecutar en paralelo.

Compatibilidad

  • La cantidad de mensajes de error podría cambiar

    Si una consulta devuelve un error durante la ejecución secuencial, la cantidad total de mensajes de error podría diferir durante la ejecución paralela.

  • Problemas de precisión

    La ejecución paralela podría almacenar más resultados intermedios de punto flotante. Esto puede causar diferencias menores de precisión en el resultado final.

  • **El paquete de red o el resultado intermedio supera max_allowed_packet**

    La ejecución paralela podría generar resultados intermedios más grandes. Si la longitud de un paquete de red o de un resultado intermedio supera max_allowed_packet, podría producirse un error. Aumente el parámetro max_allowed_packet para resolverlo. Set cluster parameters and node parameters.

  • Diferencias en el orden del conjunto de resultados

    Una instrucción SELECT ... LIMIT n sin la cláusula ORDER BY podría devolver filas en un orden distinto durante la ejecución paralela. Esto ocurre porque varios trabajadores finalizan a velocidades diferentes.

  • El recuento de bloqueos de fila podría aumentar

    Durante la ejecución paralela de SELECT ... FROM ... FOR SHARE, InnoDB bloquea cada fila a la que se accede. Por ello, el recuento de bloqueos de fila podría ser mayor que en la ejecución secuencial.

Preguntas frecuentes

Después de habilitar la consulta paralela, ¿todas las consultas se acelerarán en paralelo?

No todas las consultas se ejecutan en paralelo. Los siguientes casos vuelven a la ejecución secuencial:

  • El tipo de consulta no es compatible. Limits.

  • El volumen de exploración o el costo de la consulta está por debajo del umbral establecido por loose_records_threshold_for_parallelism y loose_cost_threshold_for_parallelism.

  • La carga de recursos del clúster es demasiado alta. System resource control policies.

Después de habilitar la consulta paralela, ¿por qué la sintaxis de hint no surte efecto?

Compruebe lo siguiente:

  • Los cambios en la consulta paralela solo surten efecto en las conexiones nuevas. Vuelva a conectarse al clúster.

  • La consulta paralela está deshabilitada de forma predeterminada en los nodos RW. Use el endpoint del clúster en lugar del endpoint principal. Configure parallel resource control policies.