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 for PostgreSQL avec Lectures optimisées pour Amazon RDS
Vous pouvez accélérer le traitement des requêtes pour RDS for PostgreSQL avec Lectures optimisées pour Amazon RDS. Une instance de base de données ou un cluster de bases de données multi-AZ RDS for PostgreSQL qui utilise la fonctionnalité Lectures optimisées pour RDS peut traiter les requêtes jusqu'à 50 % plus rapidement qu'une instance ou un cluster 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 basées sur des classes d'instance de base de données. NVMe Pour les spécifications matérielles indiquant quelles instances sont utilisées NVMe, consultezSpécifications matérielles pour les classes d'instance de base de données .
Lorsque vous utilisez une instance de base de données RDS pour PostgreSQL ou un cluster de base de données multi-AZ 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 NVMe (Non-Volatile Memory Express) local. 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 for 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
Il s'agit d'un tablespace configuré par RDS qui pointe vers le NVMe stockage local. 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 des paramètres d'un groupe de paramètres de base de données dans Amazon RDS ( Aurora). 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 analytiques qui incluent des expressions de table communes (CTEs), des tables dérivées et des opérations de regroupement.
-
Réplicas en lecture qui gèrent les requêtes non optimisées pour une application.
-
Requêtes de création de rapports dynamiques ou à la demande avec 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.
-
CREATE INDEX
ouREINDEX
des opérations de 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 stockage d'instances atteint sa limite en raison de la charge de travail sur l'instance de base de données ou le cluster de bases de données multi-AZ, modifiez l'instance ou le cluster pour utiliser une plus grande classe d'instances de base de données.
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 dans un déploiement d' NVMe instance de base de données mono-AZ, un déploiement d'instance de base de données multi-AZ ou un déploiement de cluster de bases de données multi-AZ, l'instance de base de données utilise automatiquement les lectures optimisées RDS.
Pour plus d'informations sur le déploiement multi-AZ, consultezConfiguration et gestion d'un déploiement multi-AZ pour Amazon RDS.
Pour activer RDS Optimized Reads, effectuez l'une des actions suivantes :
-
Créez une instance de base de données RDS pour PostgreSQL ou un cluster de base de données multi-AZ à l'aide de l'une des classes d'instance de base de NVMe données basées. 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 RDS pour PostgreSQL ou un cluster de base de données multi-AZ existant pour utiliser l'une des classes d'instance de base de NVMe données basées. Pour de plus amples informations, veuillez consulter Modification d'une RDS instance de base de données Amazon.
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 NVMe SSD 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 RDS instance de base de données Amazon.
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, consultezGestion 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.