Hallo,
wir hosten unser auf Discourse basierendes Forum auf Azure mit einer Instanz von „Azure Database for PostgreSQL“. Einer der Vorteile dieses Dienstes sind die Performance-Empfehlungen, die auf „Datenbankmerkmalen“ und der Nutzung basieren.
Seit der Migration zu Azure haben wir Hinweise auf fehlende und vermutlich redundante Indizes erhalten, die ich gerne mit euch teile.
Nach dem Erstellen dieser fehlenden Indizes haben wir eine leichte (nicht große) Gesamtverbesserung der Performance festgestellt. Die Empfehlung zum DROP INDEX konnten wir jedoch nicht umsetzen, da dies zukünftige Updates/Datenbank-Migrationen potenziell beeinträchtigen würde. Wir können daher nicht sagen, ob diese Indizes sicher gelöscht werden können oder ob dies negative Auswirkungen auf die Performance haben wird.
Hier sind die Indizes, die Azure uns zur Erstellung empfohlen hat (Auswirkung: „niedrig“ und „mittel“):
create-indexes.csv (1,5 KB)
Das sind die Empfehlungen für bereits abgedeckte Indizes:
Zusammenfassung
Index
index_optimized_images_on_upload_idauf Tabellepublic.optimized_imageslöschen.
Grund: Der Index wird durchindex_optimized_images_on_upload_id_and_width_and_heightabgedeckt.
Index
index_post_revisions_on_post_idauf Tabellepublic.post_revisionslöschen.
Grund: Der Index wird durchindex_post_revisions_on_post_id_and_numberabgedeckt.
Index
post_timings_summaryauf Tabellepublic.post_timingslöschen.
Grund: Der Index wird durchpost_timings_uniqueabgedeckt.
Index
index_topic_links_on_topic_idauf Tabellepublic.topic_linkslöschen.
Grund: Der Index wird durchunique_post_linksabgedeckt.
Index
index_post_uploads_on_post_idauf Tabellepublic.post_uploadslöschen.
Grund: Der Index wird durchidx_unique_post_uploadsabgedeckt.
Ihr solltet diese „DROP“-Empfehlungen mit einem Körnchen Salz nehmen, da sie meiner Meinung nach nur die Gesamtgröße der Datenbank beeinflussen und nicht die Performance steigern. Zum Beispiel: Unsere gesamte Datenbank nutzt ca. 120 GB, und all diese Empfehlungen würden insgesamt nur 422 MB freigeben. Azure selbst stuft die Auswirkung als „niedrig“ ein. Es scheint also nichts weiter als eine Bereinigung zu sein.
Wie oben erwähnt, wollte ich dies nur mit euch teilen, da es helfen könnte, die Performance etwas zu optimieren. Neben diesen Indizes gab es für die Zeit, in der wir die Dienste von Azure nutzen, keine weiteren Empfehlungen.
Viele Grüße
Sascha