Optimización de consultas paralelas en Aurora MySQL - Amazon Aurora

Optimización de consultas paralelas en Aurora MySQL

A fin de optimizar su clúster de base de datos para consultas paralelas, piense en qué clústeres de bases de datos mejorarían con la consulta paralela y en si deberían actualizarse para ello. A continuación, ajuste la carga de trabajo y cree objetos de esquema para la consulta paralela.

Planificación de un clúster de consultas paralelas

La planificación de un clúster de base de datos que tiene consultas paralelas activadas requiere tomar algunas decisiones. Estas incluyen la realización de pasos de configuración (ya sea la creación o restauración de un clúster de Aurora MySQL completo) y la determinación de la amplitud de la activación de consultas paralelas en el clúster de base de datos.

Considere lo siguiente como parte de la planificación:

  • Si utiliza Aurora MySQL que es compatible con MySQL 5.7, debe elegir Aurora MySQL 2.09 o posteriores. En este caso, siempre se crea un clúster aprovisionado. A continuación, se activa la consulta paralela mediante el parámetro aurora_parallel_query.

    Si tiene un clúster de Aurora MySQL existente que ejecuta la versión 2.09 o una posterior, no es necesario crear un clúster nuevo para utilizar la consulta paralela. Puede asociar el clúster o instancias de base de datos específicas en el clúster, con un grupo de parámetros que tiene activado el parámetro de aurora_parallel_query. Al hacerlo, puede reducir el tiempo y el esfuerzo para configurar los datos relevantes para usar con consulta paralela.

  • Planifique las tablas grandes que necesite reorganizar para que pueda utilizar la consulta paralela al acceder a ellas. Es posible que pueda necesitar crear nuevas versiones de algunas tablas grandes donde la consulta paralela es útil. Por ejemplo, es posible que tenga que eliminar índices de búsqueda de texto completo. Para obtener más información, consulte Creación de objetos de esquema para aprovechar las consultas paralelas.

Comprobación de la compatibilidad de la versión de Aurora MySQL para consulta paralela

Para verificar qué versiones de Aurora MySQL son compatibles con clústeres de consultas en paralelo, utilice el comando describe-db-engine-versions de la AWS CLI y verifique el valor del campo SupportsParallelQuery. En el siguiente ejemplo de código se muestra cómo comprobar si las combinaciones están disponibles para los clústeres de consultas en paralelo en una región de AWS. Asegúrese de especificar la cadena de parámetro completa de --query en una sola línea.

aws rds describe-db-engine-versions --region us-east-1 --engine aurora-mysql \ --query '*[]|[?SupportsParallelQuery == `true`].[EngineVersion]' --output text

Los comandos anteriores producen un resultado similar al siguiente. Es posible que el resultado varíe en función de las versiones de Aurora MySQL disponibles en la región de AWS especificada.

5.7.mysql_aurora.2.11.1 8.0.mysql_aurora.3.01.0 8.0.mysql_aurora.3.01.1 8.0.mysql_aurora.3.02.0 8.0.mysql_aurora.3.02.1 8.0.mysql_aurora.3.02.2 8.0.mysql_aurora.3.03.0

Después de comenzar a utilizar la consulta paralela con un clúster, puede monitorear el rendimiento y eliminar los obstáculos al uso de consultas paralelas. Para obtener esas instrucciones, consulte Ajuste del rendimiento de las consultas paralelas.

Consideraciones para actualizar las consultas paralelas

En función de las versiones original y de destino al actualizar un clúster de consultas paralelo, es posible que encuentre mejoras en los tipos de consultas que la consulta paralela puede optimizar. Es posible que también descubra que no necesita especificar un parámetro de modo de motor especial para la consulta paralela. En las secciones siguientes se explican las consideraciones al actualizar un clúster que tiene activada la consulta paralela.

Actualización de clústeres de consultas en paralelo para la versión 3 de Aurora MySQL

Varias instrucciones SQL, cláusulas y tipos de datos tienen compatibilidad con consultas paralelas nuevas o mejoradas a partir de Aurora MySQL versión 3. Cuando actualice desde una versión anterior a la versión 3, verifique si las consultas adicionales pueden beneficiarse de las optimizaciones de consultas paralelas. Para obtener información sobre estas mejoras de consultas paralelas, consulte Tipos de datos de columna, Tablas particionadas, y Funciones de agregación, cláusulas GROUP BY y cláusulas HAVING.

Si va a actualizar un clúster de consultas paralelas desde Aurora MySQL 2.08 o una versión anterior, obtenga información sobre los cambios en la forma de activar la consulta paralela. Para ello lea Actualización a Aurora MySQL 2.09 y versiones posteriores.

En la versión 3 de Aurora MySQL, la optimización de combinaciones hash está activada de manera predeterminada. La opción de configuración de aurora_disable_hash_join de versiones anteriores no se utiliza.

Actualización a Aurora MySQL 2.09 y versiones posteriores

En Aurora MySQL 2.09 y versiones posteriores, la consulta paralela funciona para clústeres aprovisionados y no requiere el parámetro de modo de motor parallelquery. Por lo tanto, no es necesario crear un nuevo clúster ni restaurar desde una instantánea existente para utilizar la consulta paralela con estas versiones. Puede utilizar los procedimientos de actualización descritos en Actualización de la versión secundaria o el nivel de parche de un clúster de bases de datos Aurora MySQL para actualizar el clúster a dicha versión. Puede actualizar un clúster anterior independientemente de si era un clúster de consultas paralelas o un clúster aprovisionado. Para reducir el número de opciones en el menú Engine version (Versión del motor), puede elegir Show versions that support the parallel query feature (Mostrar versiones compatibles con la característica de consulta paralela) para filtrar las entradas de ese menú. A continuación, elija Aurora MySQL 2.09 o una versión posterior.

Después de actualizar un clúster de consultas paralelas anterior a Aurora MySQL 2.09 o una versión posterior, se activa la consulta paralela en el clúster actualizado. La consulta paralela está desactivada de forma predeterminada en estas versiones y el procedimiento para habilitarla es diferente. La optimización de combinación de hash también está desactivada de forma predeterminada y se debe activar por separado. Por lo tanto, asegúrese de activar esta configuración de nuevo después de la actualización. Para obtener instrucciones sobre cómo hacerlo, consulte Activación y desactivación de las consultas paralelas en Aurora MySQL y Activación de una combinación hash para clústeres de consultas paralelas.

En particular, se activa la consulta paralela utilizando los parámetros de configuración aurora_parallel_query=ON y aurora_disable_hash_join=OFF en lugar de aurora_pq_supported y aurora_pq. Los parámetros aurora_pq_supported y aurora_pq están obsoletos en las versiones de Aurora MySQL más recientes.

En el clúster actualizado, el atributo de EngineMode tiene el valor provisioned en lugar de parallelquery. Para comprobar si la consulta paralela está disponible para una versión de motor especificada, compruebe ahora el valor del campo de SupportsParallelQuery en la salida del comando de la describe-db-engine-versions AWS CLI. En versiones de Aurora MySQL anteriores, comprobó la presencia de parallelquery en la lista de SupportedEngineModes.

Después de actualizar a Aurora MySQL 2.09 o una versión posterior, puede aprovechar las siguientes características. Estas características no están disponibles para clústeres de consultas paralelas que ejecutan versiones de Aurora MySQL anteriores.

Ajuste del rendimiento de las consultas paralelas

Para administrar el rendimiento de una carga de trabajo con consultas en paralelo, asegúrese de que dicha consulta en paralelo se usa para consultas en las que esta optimización ayuda más.

Para ello, puede hacer lo siguiente:

Creación de objetos de esquema para aprovechar las consultas paralelas

Antes de crear o modificar tablas que piensa utilizar para consultas paralelas, asegúrese de familiarizarse con los requisitos descritos en Requisitos previos y Limitaciones.

Dado que la consulta paralela requiere que las tablas usen la configuración de ROW_FORMAT=Compact o ROW_FORMAT=Dynamic, compruebe las opciones de configuración de Aurora para realizar cualquier cambio en la opción de configuración de INNODB_FILE_FORMAT. Emita la instrucción SHOW TABLE STATUS para confirmar el formato de fila para todas las tablas en una base de datos.

Antes de cambiar el esquema para activar la consulta paralela para trabajar con más tablas, asegúrese de probar. Las pruebas deben confirmar si la consulta paralela da como resultado un incremento neto en el rendimiento de esas tablas. También asegúrese de que los requisitos del esquema de una consulta en paralelo con compatibles en los demás aspectos con sus objetivos.

Por ejemplo, antes de cambiar de ROW_FORMAT=Compressed a ROW_FORMAT=Compact o ROW_FORMAT=Dynamic, pruebe el rendimiento de las cargas de trabajo para las tablas originales y nuevas. Además, tenga en cuenta otros efectos potenciales como un mayor volumen de datos.