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 RDS für Postgre SQL mit Amazon RDS Optimized Reads
Mit Amazon RDS Optimized Reads können Sie eine schnellere Abfrageverarbeitung RDS für Postgre SQL erreichen. Eine RDS SQL For-Postgre-DB-Instance oder ein Multi-AZ-DB-Cluster, der RDS Optimized Reads verwendet, kann eine um bis zu 50% schnellere Abfrageverarbeitung erreichen als eine, die Optimized Reads nicht verwendet.
Themen
- Überblick über RDS optimierte Lesevorgänge in Postgre SQL
- Anwendungsfälle für RDS optimierte Lesevorgänge
- Bewährte Methoden für RDS optimierte Lesevorgänge
- RDSOptimierte Lesevorgänge verwenden
- Überwachung von DB-Instances, die RDS optimierte Lesevorgänge verwenden
- Einschränkungen für RDS optimierte Lesevorgänge in Postgre SQL
Überblick über RDS optimierte Lesevorgänge in Postgre SQL
Optimized Reads ist standardmäßig RDS für die SQL Postgre-Versionen 15.2 und höher, 14.7 und höher sowie 13.10 und höher verfügbar.
Wenn Sie eine SQL For-Postgre-DB-Instance oder einen Multi-AZ-DB-Cluster verwenden, RDS für die RDS Optimized Reads aktiviert sind, wird mithilfe des lokalen Solid-State-Drive-Speichers () auf Blockebene, der auf Non-Volatile Memory Express (NVMe) basiert, eine um bis zu 50% schnellere Abfrageleistung erzielt. SSD Sie können eine schnellere Abfrageverarbeitung erreichen, indem Sie die von Postgre generierten temporären Tabellen SQL im lokalen Speicher platzieren. Dadurch wird der Datenverkehr zu Elastic Block Storage () über das Netzwerk reduziert. EBS
In Postgre SQL 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 Postgre ist der temp_tablespaces
Parameter RDS für diesen temporären Arbeitsbereich konfiguriertSQL, in dem die temporären Objekte gespeichert werden.
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 ihm konfigurierter TablespaceRDS, der auf den NVMe lokalen Speicher verweist. Sie können jederzeit zurück zum EBS Amazon-Speicher wechseln, indem Sie diesen Parameter ändern, indem Parameter group
Sie verwenden AWS Management Console , um auf einen anderen Tablespace als rds_temp_tablespace
zu verweisen. Weitere Informationen finden Sie unter Ändern von Parametern in einer DB-Parametergruppe. Sie können den SET Befehl auch verwenden, um den Wert des temp_tablespaces
Parameters mithilfe des SET Befehls pg_default
auf Sitzungsebene zu ändern. Wenn Sie den Parameter ändern, wird der temporäre Arbeitsbereich zu Amazon umgeleitetEBS. Die Rückkehr zu Amazon EBS hilft, wenn der lokale Speicher für Ihre RDS Instance oder Ihren Cluster nicht ausreicht, um einen bestimmten SQL Vorgang auszuführen.
postgres=> SET temp_tablespaces TO 'pg_default';
SET
postgres=> show temp_tablespaces;
temp_tablespaces ------------------ pg_default
Anwendungsfälle für RDS optimierte Lesevorgänge
Im Folgenden sind einige Anwendungsfälle aufgeführt, für die optimierte Lesevorgänge von Vorteil sein können:
-
Analytische Abfragen, die allgemeine Tabellenausdrücke (CTEs), abgeleitete Tabellen und Gruppierungsoperationen beinhalten.
-
Lesereplikate, die die nicht optimierten Abfragen für eine Anwendung verarbeiten.
-
Bedarfsgesteuerte oder dynamische Berichtsabfragen mit komplexen Vorgängen wie GROUP BY und ORDER BY, für die nicht immer geeignete 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 optimierte Lesevorgänge
Verwenden Sie die folgenden bewährten Methoden für RDS optimierte Lesevorgänge:
-
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 im Instance-Speicher verfügbaren Speicherplatz
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.
RDSOptimierte Lesevorgänge verwenden
Wenn Sie eine RDS für SQL Postgre-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 Optimized Reads. RDS
Weitere Informationen zur Multi-AZ-Bereitstellung finden Sie unter. Konfiguration und Verwaltung einer Multi-AZ-Bereitstellung für Amazon RDS
Gehen Sie wie folgt vor, um RDS Optimized Reads zu aktivieren:
-
Erstellen Sie eine RDS für SQL Postgre-DB-Instance oder einen Multi-AZ-DB-Cluster mithilfe einer der NVMe basierten DB-Instance-Klassen. Weitere Informationen finden Sie unter Eine Amazon RDS DB-Instance erstellen.
-
Ändern Sie eine bestehende RDS für Postgre SQL 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.
RDSOptimized 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 nicht optimierten RDS Lese-Instance zurückzukehren, ändern Sie die DB-Instance-Klasse Ihrer RDS Instance oder Ihres Clusters auf die ä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.
Überwachung von DB-Instances, die RDS optimierte Lesevorgänge 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-SpeicherIOPS, den Speicherplatz und den Durchsatz. Weitere Informationen zu diesen Metriken finden Sie unter Amazon-Metriken CloudWatch auf Instanzebene für Amazon RDS.
Wenn Sie die aktuelle Nutzung Ihres lokalen Speichers überwachen möchten, melden Sie sich mit der folgenden Abfrage bei Ihrer Datenbank an:
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 Informationen zu den temporären Dateien und ihrer Verwendung finden Sie unter Temporäre Dateien mit Postgre SQL verwalten.
Einschränkungen für RDS optimierte Lesevorgänge in Postgre SQL
Die folgenden Einschränkungen gelten für RDS optimierte Lesevorgänge in SQL Postgre:
-
Transaktionen können fehlschlagen, wenn der Instance-Speicher voll ist.