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 Postgre SQL avec Amazon RDS Optimized Reads
Vous pouvez accélérer le traitement des requêtes RDS pour Postgre SQL avec Amazon RDS Optimized Reads. Une instance RDS de SQL base de données Postgre ou un cluster de base de données multi-AZ qui utilise des lectures RDS optimisées peut accélérer le traitement des requêtes jusqu'à 50 % par rapport à une instance qui ne l'utilise pas.
Rubriques
- Vue d'ensemble des lectures RDS optimisées dans Postgre SQL
- 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
- Limitations des lectures RDS optimisées dans Postgre SQL
Vue d'ensemble des lectures RDS optimisées dans Postgre SQL
Les lectures optimisées sont disponibles par défaut RDS pour les SQL versions 15.2 et supérieures de Postgre, 14.7 et supérieures, et 13.10 et supérieures.
Lorsque vous utilisez une instance de SQL base RDS de données Postgre 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 jusqu'à 50 % plus rapides grâce au stockage au niveau des blocs basé sur un disque SSD (NVMe) local basé sur Non-Volatile Memory Express (SSD). Vous pouvez accélérer le traitement des requêtes en plaçant les tables temporaires générées par Postgre SQL 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 disparaît automatiquement à 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 PostgreSQL, le temp_tablespaces
paramètre 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 stockage NVMe local. Vous pouvez toujours revenir au EBS stockage Amazon en modifiant ce paramètre en Parameter group
utilisant le AWS Management Console pour pointer vers un espace disque logique autre que. rds_temp_tablespace
Pour plus d'informations, consultez Modification de paramètres dans un groupe de paramètres de bases de données. Vous pouvez également utiliser la SET commande pour modifier la valeur du temp_tablespaces
paramètre au niveau de la session pg_default
à l'aide de la SET commande. La modification du paramètre redirige la zone de travail temporaire vers AmazonEBS. Le retour à Amazon est EBS utile lorsque le stockage local de votre RDS instance ou de votre cluster n'est pas suffisant pour effectuer une SQL opération spécifique.
postgres=> SET temp_tablespaces TO 'pg_default';
SET
postgres=> show temp_tablespaces;
temp_tablespaces ------------------ pg_default
Cas d'utilisation pour des lectures RDS optimisées
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 reporting dynamiques ou à la demande 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.
-
CREATE INDEX
ouREINDEX
des opérations de tri.
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 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 lectures RDS optimisées
Lorsque vous provisionnez une instance de base de données RDS pour Postgre avec l'une des classes d'SQLinstance de base de données NVMe basées dans un déploiement d'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 des 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 les lectures RDS optimisées, effectuez l'une des opérations suivantes :
-
Créez une instance de SQL base de données RDS pour Postgre ou un cluster de base de données multi-AZ à l'aide de l'une des classes d'instances de base de données NVMe basées. Pour de plus amples informations, veuillez consulter Création d'une RDS instance de base de données Amazon.
-
Modifiez une instance de SQL base RDS de données Postgre existante ou un cluster de base de données multi-AZ pour utiliser l'une des classes d'instances de base de données NVMe basé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 où une ou plusieurs classes d'instance de base de données avec NVMe SSD stockage local sont prises en charge. Pour de plus amples informations, veuillez consulter Classes d'instances de base de données .
Pour revenir à une instance de lecture non optimisée, modifiez la classe d'RDSinstance de base de données de votre instance ou de votre cluster par une classe d'RDSinstance similaire qui prend uniquement en charge le EBS stockage pour les charges de travail de votre 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 plus d'informations, consultez Modifier une RDS instance de base de données Amazon.
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 Métriques 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 à l'aide de 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 Gérer les fichiers temporaires avec Postgre SQL.
Limitations des lectures RDS optimisées dans Postgre SQL
Les limites suivantes s'appliquent aux lectures RDS optimisées dans Postgre SQL :
-
Les transactions peuvent échouer lorsque le stockage d'instances est plein.