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 MySQL
Pour optimiser votre cluster de bases de données pour les requêtes parallèles, identifiez quels clusters bénéficieraient de requêtes parallèles 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.
Table des matières
Planification d’un cluster de requête parallèle
La planification d’un cluster de bases de données dont les requêtes parallèles sont activées nécessite quelques choix. Il s’agit notamment d’effectuer des étapes de configuration (création ou restauration d’un cluster Aurora MySQL complet) et de décider de l’étendue de l’activation des requêtes parallèles sur votre cluster de bases de données.
Considérez les éléments suivants dans le cadre de la planification :
-
Si vous utilisez une version d’Aurora MySQL compatible avec MySQL 5.7, vous devez créer un cluster provisionné. Ensuite, vous activez la requête parallèle en utilisant le paramètre
aurora_parallel_query.Si vous disposez déjà d’un cluster Aurora MySQL existant, vous n’avez pas besoin d’en créer un autre pour utiliser une 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_queryest 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 en savoir plus, consultez Création d’objets de schéma pour tirer parti des requêtes parallèles.
Vérification de la compatibilité de version Aurora MySQL pour une requête parallèle
Pour vérifier quelles sont les versions d’Aurora MySQL compatibles avec les clusters de requête parallèle, utilisez la commande de l’AWS CLI describe-db-engine-versions et vérifiez la valeur du champ SupportsParallelQuery. L’exemple de code suivant montre comment vérifier les combinaisons qui sont accessibles aux clusters compatibles avec les requêtes parallèles dans une région AWS déterminé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 : La sortie peut varier en fonction des versions d’Aurora MySQL disponibles dans la région AWS spécifiée.
5.7.mysql_aurora.2.11.1
5.7.mysql_aurora.2.11.2
5.7.mysql_aurora.2.11.3
5.7.mysql_aurora.2.11.4
5.7.mysql_aurora.2.11.5
5.7.mysql_aurora.2.11.6
5.7.mysql_aurora.2.12.0
5.7.mysql_aurora.2.12.1
5.7.mysql_aurora.2.12.2
5.7.mysql_aurora.2.12.3
5.7.mysql_aurora.2.12.4
8.0.mysql_aurora.3.04.0
8.0.mysql_aurora.3.04.1
8.0.mysql_aurora.3.04.2
8.0.mysql_aurora.3.04.3
8.0.mysql_aurora.3.05.2
8.0.mysql_aurora.3.06.0
8.0.mysql_aurora.3.06.1
8.0.mysql_aurora.3.07.0
8.0.mysql_aurora.3.07.1
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 des clusters de requêtes parallèles vers Aurora MySQL version 3
Plusieurs instructions, clauses et types de données SQL offrent une prise en charge des requêtes parallèles nouvelles ou améliorées à partir d’Aurora MySQL version 3. 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 et clauses GROUP BY et HAVING.
Si vous mettez à niveau un cluster de requête parallèle à partir d’Aurora MySQL 2.08 ou version antérieure, découvrez également les modifications apportées à l’activation d’une requête parallèle. Pour ce faire, lisez Mise à niveau vers Aurora MySQL 2.09 et versions ultérieures.
Dans Aurora MySQL version 3, l’optimisation de 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 MySQL 2.09 et versions ultérieures
Dans Aurora MySQL 2.09 et versions ultérieures, la requête parallèle fonctionne pour les clusters alloués et ne nécessite pas le paramètre de mode de moteur parallelquery. 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 de bases de données Aurora MySQL 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 MySQL 2.09 ou version ultérieure.
Après avoir mis à niveau un cluster de requête parallèle antérieur vers Aurora MySQL 2.09 ou version ultérieure, vous activez la requête parallèle 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, consultez Activation et désactivation des requêtes parallèles dans Aurora MySQL 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 paramètres aurora_pq_supported et aurora_pq sont obsolètes dans les versions d’Aurora MySQL les plus récentes.
Dans le cluster mis à niveau, l’attribut EngineMode a la valeur provisioned au lieu de parallelquery. Pour vérifier si la requête parallèle est disponible pour une version de moteur spécifiée, vous devez vérifier la valeur du champ SupportsParallelQuery dans la sortie de la commande describe-db-engine-versions AWS CLI. Dans les versions antérieures d’Aurora MySQL, vous avez vérifié la présence de parallelquery dans la liste SupportedEngineModes.
Après la mise à niveau vers Aurora MySQL 2.09 ou version ultérieure, vous pouvez profiter des fonctionnalités suivantes. Ces fonctions ne sont pas disponibles pour les clusters de requête parallèle exécutant des versions plus anciennes d’Aurora MySQL.
-
Analyse des performances. Pour plus d’informations, consultez Surveillance de la charge de la base de données avec Performance Insights sur .
-
Retour sur trace. Pour plus d’informations, consultez Retour en arrière d’un cluster de bases de données Aurora.
-
Arrêt et démarrage du cluster. Pour plus d’informations, consultez Arrêt et démarrage d’un cluster de bases de données Amazon Aurora.
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 :
-
Assurez-vous que vos tables les plus volumineuses sont compatibles avec la requête parallèle. Vous pouvez modifier les propriétés des tables ou recréer certaines tables afin que les requêtes pour ces tables puissent tirer parti de l’optimisation de requête parallèle. Pour savoir comment procéder, consultez Création d’objets de schéma pour tirer parti des requêtes parallèles.
-
Surveillez les requêtes qui utilisent la fonction de requête parallèle. Pour savoir comment procéder, consultez Surveillance des requêtes parallèles pour Aurora MySQL.
-
Vérifiez que la requête parallèle est utilisée pour les requêtes à grand volume de données et de longue durée, et avec le niveau de concurrence approprié pour votre charge de travail. Pour savoir comment procéder, consultez Vérification des instructions utilisant les requêtes parallèles pour Aurora MySQL.
-
Affinez votre code SQL pour activer la requête parallèle et l’appliquer aux requêtes de votre choix. Pour savoir comment procéder, consultez Constructions SQL pour les requêtes parallèles dans Aurora MySQL.
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 Limitations.
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.