Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verbesserung der Abfrageleistung für RDS für PostgreSQL mit Amazon-RDS-optimierten Lesevorgängen
Mit Amazon-RDS-optimierten Lesevorgängen können Sie eine schnellere Abfrageverarbeitung für RDS für PostgreSQL erreichen. Eine DB-Instance von RDS für PostgreSQL oder ein Multi-AZ-DB-Cluster, die bzw. der RDS-optimierte Lesevorgänge verwendet, kann eine doppelt so schnelle Abfrageverarbeitung erreichen als eine DB-Instance bzw. ein DB-Cluster, die bzw. der diese Funktion nicht verwendet.
Themen
Übersicht über RDS-optimierte Lesevorgänge in PostgreSQL
Optimized Reads ist standardmäßig auf RDS für PostgreSQL-Versionen 15.2 und höher, 14.7 und höher und 13.10 und höher verfügbar, wenn basierte DB-Instance-Klassen verwendet NVMe werden. Hardwarespezifikationen, die angeben, welche Instances verwendet werden, finden Sie unter. NVMe Hardware-Spezifikationen für DB-Instance-Klassen
Wenn Sie eine RDS for PostgreSQL-DB-Instance oder einen Multi-AZ-DB-Cluster verwenden, für die RDS-optimierte Lesevorgänge aktiviert sind, wird mit dem lokalen, auf Non-Volatile Memory Express (NVMe) basierenden Solid-State-Drive-Speicher (SSD) auf Blockebene eine um bis zu 50% schnellere Abfrageleistung erzielt. Sie können eine schnellere Abfrageverarbeitung erreichen, indem Sie die von PostgreSQL generierten temporären Tabellen im lokalen Speicher ablegen, wodurch der Datenverkehr zu Elastic Block Storage (EBS) über das Netzwerk reduziert wird.
In PostgreSQL werden temporäre Objekte einem temporären Namespace zugewiesen, der am Ende der Sitzung automatisch gelöscht wird. Der temporäre Namespace entfernt beim Löschen alle Objekte, die von der Sitzung abhängig sind, einschließlich schemaqualifizierter Objekte wie Tabellen, Funktionen, Operatoren oder sogar Erweiterungen.
In RDS für PostgreSQL ist der Parameter temp_tablespaces
für diesen temporären Arbeitsbereich konfiguriert, in dem die temporären Objekte gespeichert sind.
Die folgenden Abfragen geben den Namen des Tablespace und seinen Speicherort zurück.
postgres=> show temp_tablespaces;
temp_tablespaces --------------------- rds_temp_tablespace (1 row)
Das rds_temp_tablespace
ist ein von RDS konfigurierter Tablespace, der auf den lokalen Speicher verweist. NVMe Sie können jederzeit zurück zum Amazon EBS-Speicher wechseln, indem Sie diesen Parameter ändern, indem Parameter group
Sie verwenden, AWS Management Console um auf einen anderen Tablespace als zu verweisen. rds_temp_tablespace
Weitere Informationen finden Sie unter Ändern von Parametern in einer DB-Parametergruppe in Amazon RDS. Sie können den SET-Befehl auch verwenden, um den Wert des Parameters temp_tablespaces
mit dem SET-Befehl auf Sitzungsebene in pg_default
zu ändern. Durch Ändern des Parameters wird der temporäre Arbeitsbereich wieder an Amazon EBS umgeleitet. Der Wechsel zurück zu Amazon EBS hilft, wenn der lokale Speicher für Ihre RDS-Instance oder Ihren Cluster nicht ausreicht, um eine bestimmte SQL-Operation auszuführen.
postgres=> SET temp_tablespaces TO 'pg_default';
SET
postgres=> show temp_tablespaces;
temp_tablespaces ------------------ pg_default
Anwendungsfälle für RDS Optimized Reads
Im Folgenden sind einige Anwendungsfälle aufgeführt, für die optimierte Lesevorgänge von Vorteil sein können:
-
Analytische Abfragen, die Common Table Expressions (CTEs), abgeleitete Tabellen und Gruppierungsoperationen beinhalten.
-
Lesereplikate, die die nicht optimierten Abfragen für eine Anwendung verarbeiten.
-
Bedarfsgesteuerte oder dynamische Berichtsabfragen mit komplexen Operationen wie GROUP BY und ORDER BY, für die nicht immer die entsprechenden Indizes verwendet werden können.
-
Andere Workloads, die interne temporäre Tabellen verwenden.
-
CREATE INDEX
oderREINDEX
Operationen zum Sortieren.
Bewährte Methoden für RDS Optimized Reads
Nutzen Sie die folgenden bewährten Methoden für RDS Optimized Reads:
-
Fügen Sie Wiederholungslogik für schreibgeschützte Abfragen hinzu, falls diese aufgrund eines Fehlers wegen eines vollen Instance-Speichers während der Ausführung fehlschlagen.
-
Überwachen Sie anhand der CloudWatch Metrik den verfügbaren Speicherplatz im Instance-Speicher
FreeLocalStorage
. Wenn der Instance-Speicher aufgrund der Workload der DB-Instance oder des Multi-AZ-DB-Clusters sein Limit erreicht, ändern Sie die DB-Instance bzw. den DB-Cluster und verwenden Sie eine größere DB-Instance-Klasse.
Verwenden von RDS Optimized Reads
Wenn Sie eine RDS for PostgreSQL-DB-Instance mit einer der NVMe basierten DB-Instance-Klassen in einer Single-AZ-DB-Instance-Bereitstellung, einer Multi-AZ-DB-Instance-Bereitstellung oder einer Multi-AZ-DB-Cluster-Bereitstellung bereitstellen, verwendet die DB-Instance automatisch RDS-optimierte Lesevorgänge.
Weitere Informationen zur Multi-AZ-Bereitstellung finden Sie unter. Konfiguration und Verwaltung einer Multi-AZ-Bereitstellung für Amazon RDS
Führen Sie einen der folgenden Schritte aus, um RDS Optimized Reads zu aktivieren:
-
Erstellen Sie eine RDS for PostgreSQL-DB-Instance oder einen Multi-AZ-DB-Cluster mithilfe einer der NVMe basierten DB-Instance-Klassen. Weitere Informationen finden Sie unter Erstellen einer Amazon RDS-DB-Instance.
-
Ändern Sie eine bestehende RDS for PostgreSQL-DB-Instance oder einen Multi-AZ-DB-Cluster, um eine der NVMe basierten DB-Instance-Klassen zu verwenden. Weitere Informationen finden Sie unter Ändern einer Amazon RDS DB-Instance.
RDS Optimized Reads ist überall verfügbar AWS-Regionen , wo eine oder mehrere DB-Instance-Klassen mit lokalem NVMe SSD-Speicher unterstützt werden. Weitere Informationen finden Sie unter .
Um zu einer Instance mit nicht RDS-optimierten Lesevorgängen zurückzukehren, ändern Sie die DB-Instance-Klasse Ihrer RDS-Instance oder Ihres Clusters auf eine ähnliche Instance-Klasse, die nur EBS-Speicher für Ihre Datenbank-Workloads unterstützt. Wenn die aktuelle DB-Instance-Klasse beispielsweise db.r6gd.4xlarge ist, wählen Sie db.r6g.4xlarge aus, um zurückzuwechseln. Weitere Informationen finden Sie unter Ändern einer Amazon RDS DB-Instance.
Überwachen von DB-Instances, die RDS Optimized Reads verwenden
Sie können DB-Instances, die RDS-optimierte Lesevorgänge verwenden, anhand der folgenden CloudWatch Metriken überwachen:
-
FreeLocalStorage
-
ReadIOPSLocalStorage
-
ReadLatencyLocalStorage
-
ReadThroughputLocalStorage
-
WriteIOPSLocalStorage
-
WriteLatencyLocalStorage
-
WriteThroughputLocalStorage
Diese Metriken liefern Daten über den verfügbaren Instance-Speicher, die IOPS und den Durchsatz. Weitere Informationen zu diesen Metriken finden Sie unter Metriken CloudWatch auf Amazon-Instanzebene für Amazon RDS.
Um die aktuelle Nutzung Ihres lokalen Speichers zu überwachen, melden Sie sich bei Ihrer Datenbank an und führen Sie die folgende Abfrage aus:
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');
Weitere Hinweise zu den temporären Dateien und ihrer Verwendung finden Sie unterVerwalten temporärer Dateien mit PostgreSQL.
Einschränkungen für RDS-optimierte Lesevorgänge in PostgreSQL
Für RDS-optimierte Lesevorgänge gilt die folgende Einschränkung in PostgreSQL:
-
Transaktionen können fehlschlagen, wenn der Instance-Speicher voll ist.