PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL langsam auf einer großen Tabelle mit Arrays und vielen Updates

Ich würde einen Blick auf den FILLFACTOR für die Tabelle werfen. Standardmäßig ist es auf 100 eingestellt, Sie können es auf 70 senken (für den Anfang). Danach müssen Sie ein VACUUM FULL durchführen, um den Tisch neu aufzubauen.

ALTER TABLE tablename SET (FILLFACTOR = 70);
VACUUM FULL tablename;
REINDEX TABLE tablename;

Dies gibt UPDATE die Möglichkeit, die aktualisierte Kopie einer Zeile auf derselben Seite wie das Original zu platzieren, was effizienter ist, als sie auf einer anderen Seite zu platzieren. Oder wenn Ihre Datenbank durch viele frühere Aktualisierungen bereits etwas fragmentiert ist, ist sie möglicherweise bereits sparsam genug. Jetzt hat Ihre Datenbank auch die Möglichkeit, HOT-Updates durchzuführen, vorausgesetzt, die Spalte, die Sie aktualisieren, ist nicht an einem Index beteiligt.