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élioration des performances des requêtes pour RDS pour PostgreSQL avec Lectures optimisées pour Amazon RDS
Vous pouvez accélérer le traitement des requêtes pour RDS pour PostgreSQL avec Lectures optimisées pour Amazon RDS. Une instance Multi-AZ ou un cluster de base de données RDS pour PostgreSQL qui utilise des lectures optimisées RDS peut accélérer le traitement des requêtes jusqu'à 50 % par rapport à une instance qui ne l'utilise pas.
Rubriques
Présentation de Lectures optimisées pour RDS dans PostgreSQL
Les lectures optimisées sont disponibles par défaut sur RDS pour PostgreSQL versions 15.2 et supérieures, 14.7 et supérieures, et 13.10 et supérieures lors de l'utilisation de classes d'instance de base de données. NVMe-based Pour les spécifications matérielles indiquant quelles instances utilisent NVMe, consultez Spécifications matérielles pour les classes d'instances de base de données .
Lorsque vous utilisez une instance Multi-AZ ou un cluster de base de données RDS pour PostgreSQL sur lequel les lectures optimisées RDS sont activées, les performances de requête sont jusqu'à 50 % plus rapides grâce au stockage au niveau des blocs sur disque SSD (SSD) Non-Volatile local basé sur Memory Express (NVMe). Vous pouvez accélérer le traitement des requêtes en plaçant les tables temporaires générées par PostgreSQL sur le stockage local, ce qui réduit le trafic vers Elastic Block Storage (EBS) sur le réseau.
Dans PostgreSQL, les objets temporaires sont affectés à un espace de noms temporaire qui est automatiquement supprimé à la fin de la session. Lors de la suppression, l'espace de noms temporaire supprime tous les objets qui dépendent de la session, y compris les objets qualifiés selon le schéma, tels que les tables, les fonctions, les opérateurs ou même les extensions.
Dans RDS pour PostgreSQL, le paramètre temp_tablespaces est configuré pour cette zone de travail temporaire dans laquelle les objets temporaires sont stockés.
Les requêtes suivantes renvoient le nom de l'espace de table et son emplacement.
postgres=> show temp_tablespaces;temp_tablespaces --------------------- rds_temp_tablespace (1 row)
rds_temp_tablespace est un espace de table configuré par RDS qui pointe vers le stockage local NVMe. Vous pouvez toujours revenir au stockage Amazon EBS en modifiant ce paramètre en Parameter group utilisant le AWS Management Console pour pointer vers un tablespace autre que. rds_temp_tablespace Pour de plus amples informations, veuillez consulter Modification de paramètres dans un groupe de paramètres de base de données dans Amazon RDS. Vous pouvez également utiliser la commande SET pour modifier la valeur du paramètre temp_tablespaces sur pg_default au niveau de la session à l'aide de la commande SET. La modification du paramètre redirige la zone de travail temporaire vers Amazon EBS. Le retour à Amazon EBS est utile lorsque le stockage local de votre instance ou cluster RDS n'est pas suffisant pour effectuer une opération SQL spécifique.
postgres=> SET temp_tablespaces TO 'pg_default';SET
postgres=> show temp_tablespaces;temp_tablespaces ------------------ pg_default
Cas d'utilisation pour RDS Optimized Reads
Voici quelques cas d'utilisation pour lesquels Lectures optimisées est utilisé :
-
Requêtes d'application avec des expressions de table communes (CTE), des tables dérivées et des opérations de regroupement complexes.
-
Réplicas en lecture qui gèrent les requêtes non optimisées pour une application.
-
On-demand ou des requêtes de reporting dynamiques comportant des opérations complexes telles que GROUP BY et ORDER BY qui ne peuvent pas toujours utiliser les index appropriés.
-
Autres charges de travail utilisant des tables temporaires internes.
-
Opérations
CREATE INDEXouREINDEXpour le tri.
Bonnes pratiques relatives à RDS Optimized Reads
Utilisez les bonnes pratiques suivantes pour RDS Optimized Reads :
-
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 magasin d'instance atteint sa limite en raison de la charge de travail sur l'instance ou le Multi-AZ cluster de base de données, modifiez-le pour utiliser une classe d'instance de base de données plus grande.
Utilisation de RDS Optimized Reads
Lorsque vous provisionnez une instance de base de données RDS pour PostgreSQL avec l'une des classes d'instance de base de données basées sur NVMe dans le cadre d'un déploiement d'instance de base de données Multi-AZ , Single-AZ d'un déploiement d'instance de base de données Multi-AZ ou d'un déploiement de cluster de bases de données, l'instance de base de données utilise automatiquement les lectures optimisées RDS.
Pour plus d'informations sur Multi-AZ le déploiement, consultezConfiguration et gestion d'un Multi-AZ déploiement pour Amazon RDS.
Pour activer RDS Optimized Reads, effectuez l'une des actions suivantes :
-
Créez une instance Multi-AZ ou un cluster de bases de données RDS pour PostgreSQL à l'aide de l'une des classes d'instances de base de données basées sur NVMe. Pour de plus amples informations, veuillez consulter Création d'une instance de base de données Amazon RDS.
-
Modifiez une instance de base de données Multi-AZ ou un cluster de bases de données RDS pour PostgreSQL existant pour utiliser l'une des classes d'instances de base de données basées sur NVMe. Pour de plus amples informations, veuillez consulter Modification d'une instance de base de données Amazon RDS.
Les lectures optimisées RDS sont disponibles partout Régions AWS où une ou plusieurs classes d'instances de base de données avec stockage SSD NVMe local sont prises en charge. Pour de plus amples informations, veuillez consulter Classes d'instances de base de données .
Pour revenir à une instance RDS aux lectures non optimisées, modifiez la classe d'instances de base de données de votre instance ou cluster RDS pour spécifier la classe d'instances similaire qui prend en charge uniquement le stockage EBS pour vos charges de travail de base de données. Par exemple, si la classe d’instance de base de données actuelle est db.r6gd.4xlarge, choisissez db.r6g.4xlarge pour revenir en arrière. Pour de plus amples informations, veuillez consulter Modification d'une instance de base de données Amazon RDS.
Surveillance des instances de base de données qui utilisent RDS Optimized Reads
Vous pouvez surveiller les instances de base de données qui utilisent des lectures optimisées RDS à l'aide des CloudWatch métriques suivantes :
-
FreeLocalStorage -
ReadIOPSLocalStorage -
ReadLatencyLocalStorage -
ReadThroughputLocalStorage -
WriteIOPSLocalStorage -
WriteLatencyLocalStorage -
WriteThroughputLocalStorage
Ces métriques fournissent des données sur le stockage disponible dans le stockage d’instances, les IOPS et le débit. Pour plus d’informations sur ces métriques, consultez Mesures au CloudWatch niveau de l'instance Amazon pour Amazon RDS.
Pour surveiller l’utilisation actuelle de votre stockage local, connectez-vous à votre base de données et exécutez la requête suivante :
SELECT spcname AS "Name", pg_catalog.pg_size_pretty(pg_catalog.pg_tablespace_size(oid)) AS "size" FROM pg_catalog.pg_tablespace WHERE spcname IN ('rds_temp_tablespace');
Pour plus d’informations sur les fichiers temporaires et leur utilisation, consultez Gestion des fichiers temporaires avec PostgreSQL.
Limites pour Lectures optimisées pour RDS dans PostgreSQL
La limitation suivante s'applique à la fonctionnalité Lectures optimisées pour RDS dans PostgreSQL :
-
Les transactions peuvent échouer lorsque le stockage d'instances est plein.