Chrepp
Occasional Observer

Umgang mit großen Datenquellen

Hallo zusammen,

in einem über Jahre gewachsenen FirstSpirit-Projekt gibt es eine News-Datenquelle mit über 40.000 Zeilen (in vier Sprachen). Dazu gehören auch verschiedene verknüpfte Tabellen.

Man möchte gerne das News-Archiv (inkl. Verlinkungen auf die Seiten) behalten, aber das Anlegen und Speichern von Artikeln dauert sehr lange und Voll-Veröffentlichung und ggf. Projekt-Export ist faktisch unmöglich. Gibt es Erfahrungen mit solchen Datenmengen?

Wir haben also zwei Herausforderungen hier:

  1. Wie kann man den Redakteuren die Arbeit erleichtern? Lange Speicher-Zeiten erzeugen Frust.
  2. Wir würden gerne mal wieder ein Full-Deployment machen. Nur das Delta-Deployment zu nutzen, ist auf Dauer unschön.

Schöne Grüße

Christian

4 Replies
felix_reinhold
Returning Responder

Hi Christian,

die Performance hängt ja dann doch zum Großteil von der Performance eurer DB ab. 40.000 Datensätze ist nun auch keine Größenordnung, die eine ordentliche Datenbank in die Knie zwingen sollte. Macht ihr etwas im Bereich Housekeeping (bspw. Archivierung)? Denn vermutlich sind eher die ganzen zusätzlichen Revisionen die FS mit jeder Änderung erzeugt ein Problem. Ich habe bspw. lokal ein Projekt mit ~33.000 News (14 Sprachen - also auch keine kleinen Datensätze) auf einer einfachen postgres ohne Tuning der DB und habe keine Probleme beim Bearbeiten - in der DB habe ich allerdings auch kaum Revisionen (die Tabelle hat ~61.000 Zeilen). Also falls noch nicht getan, dann ein regelmäßiges Aufräumen alter Revisionen vornehmen - ansonsten die allgemeine Performance der DB bzw. der Verbindung zwischen FS und der DB prüfen.

Bzgl. Deploymentzeit - führt ihr beim Deployment auch eine Löschung von nicht mehr vorhandenen Dateien durch? Wenn nicht könntet ihr bspw. auf der Seitenreferenz der News-Detailseite einfach die maximale Anzahl an Seiten runtersetzen. Dann generiert ihr jedes mal nur die neuesten X News. Wäre dann zwar kein wirkliches FullDeployment mehr, aber immerhin würdet ihr mal wieder alles außer den News vollständig deployen. Aber auch hier sind 40.000 News x 4 Sprachen erstmal keine unmögliche Größenordnung, wenn die Performance der DB stimmt (und ihr nicht Detailseiten an mehreren Stellen erzeugt und vllt. unperformante ContentSelects in vielen Templates habt).

Viele Grüße

Felix

0 Kudos

Hallo Felix,

danke für die Antwort. Natürlich sollte die DB mit diesen Datenmengen kein Problem haben. Es sieht auch nicht wirklich danach aus. Ich werde mich wohl auf die Suche nach unperformanten ContentSelects machen müssen.

Schöne Grüße

Christian

0 Kudos
Nitros
I'm new here

Ich habe ein ähnliches Performance Problem mit einer News-Datenquelle, die weit weniger Daten enthält. Nach einigen Gesprächen und Analyse durch den Tech-Support war der Vorschlag die Fremdschlüsselbeziehungen, insbesondere N:M, zu reduzieren. Das ist leider noch nicht umgesetzt, daher kann ich nicht sagen, ob dies hilft. Wir würde aber zumindest gesagt, dass bestimmte Fremdschlüsselbeziehungen in Schema dazu führen können, dass mehr Daten geladen/gepeichert werden als angezeigt. Habt ihr das mal analysiert? Kommt natürlich stark auf das verwendete Schema an.

Ich würde aber erstmal testen, wie lange den ein Manuelles Deployment einer Mehrfachseite, die alle News enthält, wirklich dauert. Nicht das man versucht mit Kanonen auf Spatzen schießt.

Chrepp
Occasional Observer

Ja, die N:M-Beziehungen sind sicher ein Thema. Danke für den Hinweis. Ich würde mich freuen, zu erfahren, wie stark der Effekt ist, wenn ihr das umbaut.

0 Kudos