Optimisation des requêtes parallèles dans Aurora My SQL - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Optimisation des requêtes parallèles dans Aurora My SQL

Pour optimiser votre cluster de base de données pour les requêtes parallèles, déterminez quels clusters de base de données bénéficieraient d'une requête parallèle et déterminez s'il convient de procéder à une mise à niveau pour les requêtes parallèles. Ajustez ensuite votre charge de travail et créez des objets de schéma pour les requêtes parallèles.

Planification d'un cluster de requête parallèle

La planification d'un cluster de base de données dont les requêtes parallèles sont activées nécessite quelques choix. Il s'agit notamment de réaliser les étapes de configuration (création ou restauration d'un SQL cluster Aurora My complet) et de décider dans quelle mesure activer les requêtes parallèles dans votre cluster de base de données.

Considérez les éléments suivants dans le cadre de la planification :

  • Si vous utilisez Aurora My SQL compatible avec My SQL 5.7, vous devez choisir Aurora My SQL 2.09 ou version ultérieure. Dans ce cas, vous créez toujours un cluster alloué. Ensuite, vous activez la requête parallèle en utilisant le paramètre aurora_parallel_query.

    Si vous possédez un SQL cluster Aurora My existant qui exécute la version 2.09 ou supérieure, il n'est pas nécessaire de créer un nouveau cluster pour utiliser la requête parallèle. Vous pouvez associer votre cluster ou des instances de base de données spécifiques du cluster à un groupe de paramètres pour lequel aurora_parallel_query est activé. De ce fait, vous pouvez réduire le temps et les efforts nécessaires pour configurer les données pertinentes à utiliser avec une requête parallèle.

  • Planifiez les tables volumineuses que vous devez réorganiser afin d'être en mesure d'utiliser la requête parallèle lors de l'accès à celles-ci. Vous devrez peut-être créer de nouvelles versions de certaines tables volumineuses où la requête parallèle est utile. Par exemple, vous devrez peut-être supprimer les index de recherche en texte intégral. Pour plus de détails, consultez Création d'objets de schéma pour tirer parti des requêtes parallèles.

Vérification de la compatibilité des SQL versions d'Aurora My pour les requêtes parallèles

Pour vérifier quelles SQL versions d'Aurora My sont compatibles avec les clusters de requêtes parallèles, utilisez la describe-db-engine-versions AWS CLI commande et vérifiez la valeur du SupportsParallelQuery champ. L'exemple de code suivant montre comment vérifier quelles combinaisons sont disponibles pour les clusters de requêtes parallèles dans une AWS région spécifiée. Assurez-vous de spécifier la chaîne de paramètres --query complète sur une seule ligne.

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

Les commandes précédentes génèrent une sortie similaire à la sortie suivante : Le résultat peut varier en fonction des SQL versions d'Aurora My disponibles dans la AWS région spécifiée.

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

Une fois que vous avez commencé à utiliser une requête parallèle avec un cluster, vous pouvez surveiller les performances et supprimer les obstacles à l'utilisation de la requête parallèle. Pour obtenir ces instructions, consultez Réglage de performances pour les requêtes parallèles.

Considérations relatives aux mises à niveau pour les requêtes parallèles

Selon les versions d'origine et de destination lorsque vous mettez à niveau un cluster de requêtes parallèles, vous trouverez des améliorations dans les types de requêtes que la requête parallèle peut optimiser. Vous constaterez également que vous n'avez pas besoin de spécifier un paramètre de mode de moteur spécial pour les requêtes parallèles. Les sections suivantes expliquent les considérations à prendre en compte lors de la mise à niveau d'un cluster sur lequel la requête parallèle est activée.

Mise à niveau de clusters de requêtes parallèles vers Aurora My SQL version 3

Plusieurs SQL instructions, clauses et types de données prennent en charge les requêtes parallèles de manière nouvelle ou améliorée à partir de la SQL version 3 d'Aurora My. Lorsque vous effectuez une mise à niveau à partir d'une version antérieure à la version 3, vérifiez si des requêtes supplémentaires peuvent bénéficier d'optimisations des requêtes parallèles. Pour plus d'informations sur ces améliorations des requêtes parallèles, consultez Types de données de colonne, Tables partitionnées et Fonctions d'agrégation, clauses GROUP BY et HAVING clauses.

Si vous mettez à niveau un cluster de requêtes parallèles à partir d'Aurora My SQL 2.08 ou d'une version antérieure, découvrez également les modifications apportées à la façon d'activer les requêtes parallèles. Pour ce faire, lisez Mise à niveau vers Aurora My SQL 2.09 ou version ultérieure.

Dans Aurora My SQL version 3, l'optimisation de la jointure par hachage est activée par défaut. L'option de configuration aurora_disable_hash_join des versions antérieures n'est pas utilisée.

Mise à niveau vers Aurora My SQL 2.09 ou version ultérieure

Dans Aurora My SQL version 2.09 et versions ultérieures, la requête parallèle fonctionne pour les clusters provisionnés et ne nécessite pas le paramètre parallelquery engine mode. Ainsi, vous n'avez pas besoin de créer un nouveau cluster ou de procéder à une restauration à partir d'un instantané existant pour utiliser une requête parallèle avec ces versions. Vous pouvez utiliser les procédures de mise à niveau décrites dans Mise à niveau de la version mineure ou du niveau de correctif d'un cluster Aurora My SQL DB pour mettre à niveau votre cluster vers une de ces versions. Vous pouvez mettre à niveau un cluster plus ancien, qu'il s'agisse d'un cluster de requête parallèle ou d'un cluster alloué. Pour réduire le nombre de choix dans le menu Engine version (Version du moteur), vous pouvez choisir Show versions that support the parallel query feature (Afficher les versions prenant en charge la fonction de requête parallèle) pour filtrer les entrées de ce menu. Choisissez ensuite Aurora My SQL 2.09 ou version ultérieure.

Après avoir mis à niveau un cluster de requêtes parallèles antérieur vers Aurora My SQL 2.09 ou version ultérieure, vous activez les requêtes parallèles dans le cluster mis à niveau. La requête parallèle est désactivée par défaut dans ces versions. La procédure pour l'activer est différente. L'optimisation de jointure par hachage est également désactivée par défaut et doit être activée séparément. Ainsi, veillez à activer à nouveau ces paramètres après la mise à niveau. Pour obtenir des instructions à ce sujet, veuillez consulter Activation et désactivation de la requête parallèle dans Aurora My SQL et Activation de la jointure par hachage pour les clusters de requête parallèle.

En particulier, vous activez la requête parallèle en utilisant les paramètres de configuration aurora_parallel_query=ON et aurora_disable_hash_join=OFF au lieu de aurora_pq_supported et aurora_pq. Les aurora_pq paramètres aurora_pq_supported et sont obsolètes dans les nouvelles versions d'Aurora MySQL.

Dans le cluster mis à niveau, l'attribut EngineMode a la valeur provisioned au lieu de parallelquery. Pour vérifier si une requête parallèle est disponible pour une version de moteur spécifiée, vous devez maintenant vérifier la valeur du SupportsParallelQuery champ dans le résultat de la describe-db-engine-versions AWS CLI commande. Dans les SQL versions précédentes d'Aurora My, vous avez vérifié la présence de parallelquery dans la SupportedEngineModes liste.

Après avoir effectué la mise à niveau vers Aurora My SQL version 2.09 ou supérieure, vous pouvez bénéficier des fonctionnalités suivantes. Ces fonctionnalités ne sont pas disponibles pour les clusters de requêtes parallèles exécutant d'anciennes SQL versions d'Aurora My.

Réglage de performances pour les requêtes parallèles

Pour gérer les performances d'une charge de travail avec la fonction de requête parallèle, assurez-vous que cette dernière est utilisée pour les requêtes pour lesquelles cette optimisation est la plus utile.

Pour ce faire, vous pouvez effectuer les opérations suivantes :

Création d'objets de schéma pour tirer parti des requêtes parallèles

Avant de créer ou de modifier des tables que vous prévoyez d'utiliser pour une requête parallèle, veillez à vous familiariser avec les exigences décrites dans Prérequis et Limites.

La fonction de requête parallèle nécessitant que les tables utilisent le paramètre ROW_FORMAT=Compact ou ROW_FORMAT=Dynamic, vérifiez si des modifications ont été apportées à l'option de configuration INNODB_FILE_FORMAT dans les paramètres de configuration Aurora. Exécutez l'instruction SHOW TABLE STATUS pour confirmer le format de ligne de toutes les tables d'une base de données.

Avant de modifier votre schéma pour permettre à la requête parallèle de fonctionner avec d'autres tables, assurez-vous de procéder à des tests. Vos tests doivent confirmer si une requête parallèle entraîne une augmentation nette des performances pour ces tables. Assurez-vous également que les exigences en matière de schéma pour les requêtes parallèles coïncident avec vos objectifs.

Par exemple, avant de passer de ROW_FORMAT=Compressed à ROW_FORMAT=Compact ou ROW_FORMAT=Dynamic, testez les performances des charges de travail pour les tables d'origine et les nouvelles tables. Tenez également compte des autres effets potentiels tels que l'augmentation du volume de données.