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.
Contenido
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.
-
Performance Insights. Para obtener más información, consulte Monitoreo de la carga de base de datos con Performance Insights en Amazon Aurora.
-
Búsqueda de datos anteriores. Para obtener más información, consulte Búsqueda de datos anteriores de un clúster de base de datos de Aurora.
-
Parar y comenzar el clúster. Para obtener más información, consulte Detención e inicio de un clúster de bases de datos de Amazon Aurora.
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:
-
Asegúrese de que las tablas más grandes son compatibles con la consulta paralela. Es posible que pueda cambiar las propiedades de la tabla o volver a crear algunas tablas para que las consultas de esas tablas puedan aprovechar la optimización de consultas paralelas. Para saber cómo hacerlo, consulte Creación de objetos de esquema para aprovechar las consultas paralelas.
-
Monitorizar qué consultas usan consultas en paralelo. Para saber cómo hacerlo, consulte Monitorización de consultas paralelas para Aurora MySQL.
-
Compruebe que la consulta paralela se utiliza para las consultas con mayor volumen de datos y de larga ejecución, y con el nivel adecuado de simultaneidad para su carga de trabajo. Para saber cómo hacerlo, consulte Cómo comprobar qué instrucciones usan consultas paralelas para Aurora MySQL.
-
Ajuste el código SQL para activar la consulta paralela y que se aplique a las consultas que espera. Para saber cómo hacerlo, consulte Constructos de SQL para consultas paralelas en Aurora MySQL.
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.