Este tema presenta los resultados de la prueba TPC-H para la función de consulta paralela en PolarDB for MySQL 8.0.1 y 8.0.2 Cluster Edition. Utilice estos resultados para evaluar las mejoras de rendimiento de OLAP (procesamiento analítico en línea) antes de habilitar la consulta paralela en su entorno.
Cómo funciona la consulta paralela
La consulta paralela reduce el tiempo de respuesta. Para ello, distribuye fragmentos de datos en varios hilos de la capa de almacenamiento. La función se activa automáticamente cuando el volumen de datos consultado supera un umbral. Para obtener una descripción general, consulte Overview.
PolarDB for MySQL 8.0.1 distribuye fragmentos de datos a hilos de trabajo, que procesan los datos en paralelo y devuelven los resultados al hilo líder. El hilo líder combina los resultados y devuelve la salida final.
PolarDB for MySQL 8.0.2 introduce el procesamiento paralelo en varias fases y la optimización basada en costos. Con esto supera dos limitaciones de 8.0.1: el cuello de botella de rendimiento de un único hilo líder y las cargas de trabajo desequilibradas. Después de la primera fase de procesamiento paralelo, los fragmentos de datos se redistribuyen a un grupo de trabajo paralelo para la siguiente fase. Esta redistribución ocurre antes de que el hilo líder combine los resultados finales. Esto mejora las capacidades de aceleración lineal y habilita planes de ejecución paralela más flexibles.
A continuación se muestra un diagrama del procesamiento paralelo en un clúster con 8 núcleos y 32 GB de memoria.

Entorno de prueba
|
Elemento |
Detalles |
|
Especificación del clúster |
8 núcleos, 32 GB de memoria |
|
Prueba de referencia |
TPC-H (22 consultas, Q1–Q22) |
|
Tipo de prueba |
OLAP |
Parámetros de consulta paralela
A continuación se enumeran los valores de parámetro utilizados en las pruebas OLAP. Configure estos parámetros; para ello, consulte Configure cluster and node parameters. Para conocer los métodos de prueba completos, consulte Performance test for parallel queries.
PolarDB for MySQL 8.0.1
|
Parámetro |
Valor predeterminado |
Valor de prueba (opción 1) |
|
|
|
|
|
|
|
|
PolarDB for MySQL 8.0.2
|
Parámetro |
Valor predeterminado |
Valor de prueba (opción 1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Cuandoloose_parallel_degree_policyse establece enTYPICAL, PolarDB ignora el uso de recursos de la base de datos (como la utilización de CPU) y establece el grado de paralelismo (DOP) en el valor deloose_max_parallel_degree.
Compruebe que la consulta paralela está activa
Después de establecer los parámetros anteriores, confirme que una consulta realmente utiliza la ejecución paralela antes de extraer conclusiones de los resultados de tiempo. Ejecute EXPLAIN en la consulta de destino y compruebe la columna Extra para ver la anotación Using parallel query:
EXPLAIN SELECT ...;
Si la consulta paralela está activa, la salida incluye entradas similares a:
| ... | Using where; Using parallel query (4 columns, 1 filters, 1 exprs; 0 extra) |
Si la anotación está ausente, la consulta no utiliza la ejecución paralela. Las causas comunes incluyen un volumen de datos por debajo del umbral de activación. Otra causa es un patrón de consulta aún no compatible con el motor de ejecución paralela.
Resultados de las pruebas
Comparación de versiones
La tabla a continuación resume el tiempo total de ejecución de las 22 consultas de TPC-H. Además, ofrece una vista de alto nivel de las mejoras de la consulta paralela y de la mejora de rendimiento de 8.0.1 a 8.0.2.
|
Versión |
Total predeterminado (s) |
Total paralelo (s) |
Aceleración general |
|
PolarDB 8.0.1 |
7,735.67 |
1,940.68 |
~4.0x |
|
PolarDB 8.0.2 |
2,931.02 |
870.03 |
~3.4x |
La configuración predeterminada de 8.0.2 ya incorpora mejoras de arquitectura de 8.0.1. Por eso, la línea base predeterminada de 8.0.2 es significativamente más rápida que 8.0.1. La consulta paralela en 8.0.2 ofrece una relación de aceleración similar sobre su propia línea base. Además, los tiempos de consulta absolutos son sustancialmente más rápidos en todos los casos.
PolarDB for MySQL 8.0.1
|
Consulta |
Predeterminado (s) |
Paralelo (s) |
Relación de aceleración |
|
Q1 |
2,495.05 |
86.63 |
28.8x |
|
Q2 |
13.18 |
1.46 |
9.0x |
|
Q3 |
345.56 |
28.67 |
12.1x |
|
Q4 |
63.78 |
6.26 |
10.2x |
|
Q5 |
251.48 |
258.55 |
1.0x |
|
Q6 |
241.70 |
16.40 |
14.7x |
|
Q7 |
174.91 |
171.85 |
1.0x |
|
Q8 |
560.82 |
572.63 |
1.0x |
|
Q9 |
450.68 |
42.17 |
10.7x |
|
Q10 |
895.75 |
270.29 |
3.3x |
|
Q11 |
30.03 |
11.60 |
2.6x |
|
Q12 |
266.14 |
17.65 |
15.1x |
|
Q13 |
780.74 |
127.10 |
6.1x |
|
Q14 |
72.04 |
7.57 |
9.5x |
|
Q15 |
261.77 |
56.55 |
4.6x |
|
Q16 |
40.69 |
24.29 |
1.7x |
|
Q17 |
57.75 |
13.04 |
4.4x |
|
Q18 |
257.66 |
136.79 |
1.9x |
|
Q19 |
19.17 |
1.52 |
12.6x |
|
Q20 |
143.97 |
49.72 |
2.9x |
|
Q21 |
293.99 |
37.79 |
7.8x |
|
Q22 |
18.81 |
2.15 |
8.7x |

Q5, Q7 y Q8 muestran una mejora mínima o nula con la configuración paralela de 8.0.1. Estas consultas incluyen patrones, como ciertas agregaciones entre tablas y distribuciones de combinaciones, que no obtienen ventaja del modelo de paralelismo de 8.0.1. PolarDB for MySQL 8.0.2 aborda estos casos mediante procesamiento paralelo en varias fases.
PolarDB for MySQL 8.0.2
|
Consulta |
Predeterminado (s) |
Paralelo (s) |
Relación de aceleración |
|
Q1 |
573.34 |
89.65 |
6.4x |
|
Q2 |
3.62 |
0.66 |
5.5x |
|
Q3 |
96.89 |
28.52 |
3.4x |
|
Q4 |
18.66 |
6.41 |
2.9x |
|
Q5 |
150.93 |
28.93 |
5.2x |
|
Q6 |
68.13 |
17.13 |
4.0x |
|
Q7 |
114.56 |
17.39 |
6.6x |
|
Q8 |
333.36 |
54.32 |
6.1x |
|
Q9 |
136.26 |
42.15 |
3.2x |
|
Q10 |
325.19 |
128.55 |
2.5x |
|
Q11 |
11.49 |
4.53 |
2.5x |
|
Q12 |
121.68 |
17.54 |
6.9x |
|
Q13 |
281.10 |
126.20 |
2.2x |
|
Q14 |
23.34 |
7.59 |
3.1x |
|
Q15 |
77.22 |
33.02 |
2.3x |
|
Q16 |
12.15 |
8.96 |
1.4x |
|
Q17 |
4.51 |
1.13 |
4.0x |
|
Q18 |
325.05 |
133.07 |
2.4x |
|
Q19 |
5.37 |
1.50 |
3.6x |
|
Q20 |
70.31 |
90.75 |
0.8x |
|
Q21 |
171.81 |
29.87 |
5.8x |
|
Q22 |
6.05 |
2.16 |
2.8x |

Q20 muestra una ligera regresión con la configuración paralela de 8.0.2 en esta prueba. El rendimiento de la consulta varía según la distribución de datos y los patrones de combinación. Ejecute pruebas con su propia carga de trabajo para validar los resultados de su caso de uso específico.
Pasos siguientes
Configure cluster and node parameters — establezca los parámetros de consulta paralela para su clúster
Performance test for parallel queries — ejecute pruebas TPC-H en su propio clúster
Overview — obtenga más información sobre la función de consulta paralela