Benötigen AWS-Replikate von Postgres RDS-Instanzen unabhängig von ihrem Primärelement die Funktionen Vacuum und Analyze?

Benötigen AWS-Replikate von Postgres RDS-Instanzen unabhängig von ihrem Primärelement die Funktionen Vacuum und Analyze?

Vorausgesetzt, ich verwende keine logische Replikation …

Mir ist nicht klar, wie die Low-Level-Replikation mit anderen Low-Level-Operationen interagiert, wieVakuumUndanalysieren.

Mir ist nicht klar, ob Replikate eher Blockkopien ihres Primärservers sind, wobei Änderungen, die durch Vacuum auf dem Primärserver vorgenommen werden, auf das Replikat repliziert werden. Oder ob Replikate eher für die Selbstwartung verantwortlich sind.


Hintergrund

Wir haben eine RDS-Instanz, die jährlich um etwa 2 TB wächst. Heute haben wir festgestellt, dass einige unserer bestehenden Abfragen sehr langsam ausgeführt werden.

Bei einer plötzlichen Änderung einer Abfrage in einer sehr großen Tabelle, die sehr konstant wächst, besteht mein erster Instinkt darin, nach Codeänderungen zu suchen und mein zweiter darin, die Tabellenstatistiken zu überprüfen.

Dies hat mich jedoch auf eine Wissenslücke in Bezug auf Vakuum/Analyse hingewiesen.

Antwort1

Amazon RDS für PostgreSQLVerwendetDie integriertenStreaming-Replikation.

Im Wesentlichen handelt es sich um eine serverweite Replikation auf niedriger Ebene, die manchmal auch als physische Replikation bezeichnet wird. Ja, Sie können es sich als eine Art Replikation auf Blockebene vorstellen.

Bei der Streaming-Replikation werden Blöcke jedoch nicht wirklich repliziert. Sie funktioniert, indem kontinuierlich WAL-Daten (Redo-Datensätze) vom Primärserver gesendet werden, um sie auf Replikaten wiederzugeben.

Ein Vakuumvorgang wird in WAL aufgezeichnet und auf Replikationsservern wiedergegeben.

Bei einem Analysevorgang werden die resultierenden Statistiken in die Systemtabellen pg_classund geschrieben pg_statistic. Die Aktualisierungen dieser Tabellen werden in WAL aufgezeichnet und auf Replikaten wiedergegeben.

verwandte Informationen