2025-04-29 18:48:24.709 UTC [1746] discourse@discourse LOG: Dauer: 606789.911 ms Ausführung unnamed: SELECT COUNT(*) FROM "posts" WHERE "posts"."deleted_at" IS NULL
dauer: 606789.911 ms
Wir haben viele Beiträge, aber wenige Nutzer.. warum dauert es 600k ms bei dieser Abfrage?
Ich habe die Diskurs-Tabelle in Postgres ausgewählt und einen REINDEX DATABASE discourse; ausgeführt, in der Hoffnung, dass dies die Dinge beschleunigt.
Ich gehe davon aus, dass dies sehr lange dauern wird.
Ich habe es nicht gemacht, ich habe den Ordner postgres_data_old (wenn auch in einem anderen Verzeichnis als in diesem Beitrag).
Aber dann sagt der Beitrag;
“Wenn Sie eine Einrichtung mit einem dedizierten Datenspeicher-Container ausführen” , was ich als bedeutet, dass PostgreSQL in einem dedizierten Docker-Container läuft?
Unsere laufen in derselben Instanz wie das Forum. Daher bin ich unsicher, wie ich weiter vorgehen soll, da es keinen “wenn nicht”-Abschnitt zu geben scheint.
Bedeutet die Anwesenheit des Ordners, dass die Umwandlung in Ordnung war oder was?"}
Sie können die PostgreSQL-Version unter /var/discourse/shared/standalone/postgres_data/PG_VERSION überprüfen – Wenn Sie ein Upgrade über die Befehlszeile durchgeführt haben, ist es möglich, dass das Upgrade erfolgreich war und Sie es nicht bemerkt haben (aber Sie hätten den Wiederaufbau zweimal ausführen müssen). Wenn Sie das Upgrade über die Weboberfläche durchgeführt haben, sollten Sie wahrscheinlich einen Befehlszeilen-Wiederaufbau durchführen, vorausgesetzt, Ihr Betriebssystem und Docker sind aktuelle Versionen.
Es scheint, dass die Dinge viel besser sind, nachdem ich den Vacuum-Befehl ausgeführt habe.
Das Posten funktioniert einwandfrei und scheint schnell zu sein, aber wenn Administratoren versuchen, Benutzerprofile zu klicken oder ihre Profile aufzurufen, zeigt es immer noch 502-Fehler, scheint es, wegen Timeout?
Gibt es etwas, das ich tun kann, um diesen Teil der Datenbank zu beschleunigen?