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.
Améliorer les performances des requêtes RDS pour My SQL grâce à Amazon RDS Optimized Reads
Vous pouvez accélérer le traitement des requêtes RDS pour My SQL grâce à Amazon RDS Optimized Reads. Une instance RDS for My SQL DB ou un cluster de base de données multi-AZ qui utilise des lectures RDS optimisées peut permettre un traitement des requêtes jusqu'à deux fois plus rapide qu'une instance ou un cluster de base de données qui ne l'utilise pas.
Rubriques
- Vue d'ensemble des lectures RDS optimisées
- Cas d'utilisation pour des lectures RDS optimisées
- Bonnes pratiques pour des lectures RDS optimisées
- Utilisation de lectures RDS optimisées
- Surveillance des instances de base de données qui utilisent des lectures RDS optimisées
- Limites relatives aux lectures RDS optimisées
Vue d'ensemble des lectures RDS optimisées
Lorsque vous utilisez une instance RDS for My SQL DB ou un cluster de base de données multi-AZ sur lequel les lectures RDS optimisées sont activées, les performances de requête sont plus rapides grâce à l'utilisation d'un magasin d'instances. Un stockage d'instances fournit un stockage temporaire de niveau bloc pour votre instance de base de données ou votre cluster de bases de données multi-AZ. Le stockage est situé sur des disques SSD Non-Volatile Memory Express (NVMeSSDs) connectés physiquement au serveur hôte. Ce stockage est optimisé pour une faible latence, de hautes performances d'E/S aléatoires et un haut débit de lecture séquentielle.
RDSLes lectures optimisées sont activées par défaut lorsqu'une instance de base de données ou un cluster de base de données multi-AZ utilise une classe d'instance de base de données avec un magasin d'instance, tel que db.m5d ou db.m6gd. Avec les lectures RDS optimisées, certains objets temporaires sont stockés dans le magasin d'instance. Ces objets temporaires incluent des fichiers temporaires internes, des tables temporaires internes sur disque, des fichiers de mappage de mémoire et des fichiers de cache de journal binaire (binlog). Pour plus d'informations sur le magasin d'instances, consultez le magasin d'EC2instances Amazon dans le guide de l'utilisateur Amazon Elastic Compute Cloud pour les instances Linux.
Les charges de travail qui génèrent des objets temporaires dans My SQL pour le traitement des requêtes peuvent tirer parti du magasin d'instances pour accélérer le traitement des requêtes. Ce type de charge de travail inclut les requêtes impliquant des tris, des agrégations de hachage, des jointures à charge élevée, des expressions de table communes (CTEs) et des requêtes sur des colonnes non indexées. Ces volumes de stockage d'instance offrent des performances IOPS et des performances supérieures, quelles que soient les configurations de stockage utilisées pour le EBS stockage Amazon persistant. Dans la RDS mesure où Optimized Reads transfère les opérations sur les objets temporaires vers le magasin d'instance, les opérations d'entrée/sortie par seconde (IOPS) ou le débit du stockage persistant (AmazonEBS) peuvent désormais être utilisés pour des opérations sur des objets persistants. Ces opérations incluent des lectures et des écritures régulières de fichiers de données, ainsi que des opérations de moteur en arrière-plan, telles que le vidage et la fusion de mémoires tampon par insertion.
Note
Les RDS instantanés manuels et automatisés contiennent uniquement des fichiers de moteur pour les objets persistants. Les objets temporaires créés dans le magasin d'instances ne sont pas inclus dans les RDS instantanés.
Cas d'utilisation pour des lectures RDS optimisées
Si vos charges de travail dépendent fortement d'objets temporaires, tels que des tables ou des fichiers internes, pour l'exécution des requêtes, vous pouvez tirer parti de l'activation des lectures RDS optimisées. Les cas d'utilisation suivants sont éligibles aux lectures RDS optimisées :
-
Applications qui exécutent des requêtes analytiques avec des expressions de table communes complexes (CTEs), des tables dérivées et des opérations de regroupement
-
Réplicas en lecture qui traitent un trafic de lecture important avec des requêtes non optimisées
-
Applications exécutant des requêtes de création de rapport à la demande ou dynamiques impliquant des opérations complexes, telles que des requêtes avec des clauses
GROUP BY
etORDER BY
-
Charges de travail utilisant des tables temporaires internes pour le traitement des requêtes
Vous pouvez surveiller la variable de statut du moteur
created_tmp_disk_tables
pour déterminer le nombre de tables temporaires sur disque créées sur votre instance de base de données. -
Applications qui créent de grandes tables temporaires, directement ou dans le cadre de procédures, pour stocker des résultats intermédiaires
-
Requêtes de base de données qui regroupent ou trient des colonnes non indexées
Bonnes pratiques pour des lectures RDS optimisées
Utilisez les meilleures pratiques suivantes pour RDS optimiser les lectures :
-
Ajoutez une logique de nouvelle tentative pour les requêtes en lecture seule au cas où elles échoueraient en raison d'un stockage d'instances complet pendant l'exécution.
-
Surveillez l'espace de stockage disponible sur le magasin d'instances à l'aide de la CloudWatch métrique
FreeLocalStorage
. Si le stockage d'instances atteint sa limite en raison de la charge de travail sur l'instance de base de données, modifiez l'instance de base de données pour utiliser une classe d'instances de base de données plus grande. -
Lorsque votre instance de base de données ou votre cluster de bases de données multi-AZ dispose de suffisamment de mémoire mais atteint toujours la limite de stockage sur le stockage d'instances, augmentez la valeur
binlog_cache_size
pour conserver en mémoire les entrées binlog spécifiques à la session. Cette configuration empêche l'écriture des entrées binlog dans les fichiers de cache binlog temporaires sur le disque.Le paramètre
binlog_cache_size
est spécifique à la session. Vous pouvez modifier cette valeur pour chaque nouvelle session. Le réglage de ce paramètre peut augmenter l'utilisation de la mémoire sur l'instance de base de données pendant les pics de charge de travail. Par conséquent, envisagez d'augmenter la valeur du paramètre en fonction du modèle de charge de travail de votre application et de la mémoire disponible sur l'instance de base de données. -
Pour les versions My SQL 8.0 et antérieures, utilisez la valeur par défaut de
MIXED
pour lebinlog_format
paramètre. En fonction de la taille des transactions, le réglage debinlog_format
surROW
peut entraîner la création de fichiers de cache binlog volumineux sur le stockage d'instances. Pour My SQL 8.4 et versions ultérieures, utilisez la valeur par défaut deROW
pour lebinlog_format
paramètre. -
Définissez le paramètre internal_tmp_mem_storage_engine
sur TempTable
et définissez le paramètre temptable_max_mmappour qu'il corresponde à la taille du stockage disponible sur le stockage d'instances. -
Évitez d'effectuer des modifications en bloc dans une transaction unique. Ces types de transactions peuvent générer de gros fichiers de cache binlog sur le stockage d'instances et peuvent provoquer des problèmes lorsque le stockage d'instances est plein. Envisagez de diviser les écritures en plusieurs petites transactions afin de réduire au maximum l'utilisation de l'espace de stockage pour les fichiers de cache binlog.
-
Utilisez la valeur par défaut de
ABORT_SERVER
pour le paramètrebinlog_error_action
. Cela évite les problèmes liés à la journalisation binaire sur les instances de base de données lorsque les sauvegardes sont activées.
Utilisation de lectures RDS optimisées
Lorsque vous provisionnez une instance RDS for My SQL DB avec l'une des classes d'instance DB suivantes dans le cadre d'un déploiement d'instance de base de données mono-AZ, d'un déploiement d'instance de base de données multi-AZ ou d'un déploiement de cluster de base de données multi-AZ, l'instance de base de données utilise automatiquement des RDS lectures optimisées.
Pour activer les lectures RDS optimisées, effectuez l'une des opérations suivantes :
-
Créez une instance RDS for My SQL DB ou un cluster de base de données Multi-AZ à l'aide de l'une de ces classes d'instances de base de données. Pour de plus amples informations, veuillez consulter Création d'une RDS instance de base de données Amazon.
-
Modifiez une instance de base de données existante RDS pour My SQL DB ou un cluster de base de données Multi-AZ pour utiliser l'une de ces classes d'instance de base de données. Pour de plus amples informations, veuillez consulter Modification d'une RDS instance de base de données Amazon.
RDSLes lectures optimisées sont disponibles partout Régions AWS RDS où une ou plusieurs classes d'instance de base de données avec NVMe SSD stockage local sont prises en charge. Pour plus d'informations sur les classes d'instances de base de données, consultez Classes d'instances de base de données .
La disponibilité des classes d'instances de base de données diffère pour Régions AWS. Pour déterminer si une classe d'instance de base de données est prise en charge dans une classe spécifique Région AWS, consultezDéterminer le support des classes d'instance de base de données dans Régions AWS.
Si vous ne souhaitez pas utiliser les lectures RDS optimisées, modifiez votre instance de base de données ou votre cluster de base de données multi-AZ afin qu'il n'utilise pas de classe d'instance de base de données prenant en charge cette fonctionnalité.
Surveillance des instances de base de données qui utilisent des lectures RDS optimisées
Vous pouvez surveiller les instances de base de données qui utilisent des lectures RDS optimisées à l'aide CloudWatch des métriques suivantes :
-
FreeLocalStorage
-
ReadIOPSLocalStorage
-
ReadLatencyLocalStorage
-
ReadThroughputLocalStorage
-
WriteIOPSLocalStorage
-
WriteLatencyLocalStorage
-
WriteThroughputLocalStorage
Ces métriques fournissent des données sur le stockage d'instanceIOPS, le stockage et le débit disponibles. Pour plus d’informations sur ces métriques, consultez Mesures au CloudWatch niveau de l'instance Amazon pour Amazon RDS.
Limites relatives aux lectures RDS optimisées
Les limites suivantes s'appliquent aux lectures RDS optimisées :
-
RDSLes lectures optimisées sont prises en charge pour les versions suivantes :
-
RDSpour My SQL version 8.0.28 et versions supérieures majeures et mineures
Pour plus d'informations sur RDS les versions pour Mes SQL versions, consultezMes RDS versions SQL sur Amazon.
-
-
Vous ne pouvez pas modifier l'emplacement des objets temporaires vers le stockage persistant (AmazonEBS) sur les classes d'instance de base de données qui prennent en charge les lectures RDS optimisées.
-
Lorsque la journalisation binaire est activée sur une instance de base de données, la taille maximale des transactions est limitée par la taille du stockage d'instances. Dans MySQL, toute session qui nécessite plus de stockage que la valeur de
binlog_cache_size
écrit les modifications de transaction dans les fichiers de cache binlog temporaires, qui sont créés sur le magasin d'instance. -
Les transactions peuvent échouer lorsque le stockage d'instances est plein.