Hallo liebe Helfer,
ich habe mal eine grundsätzliche Frage, welche ich leider nicht selbst überprüfen kann.
Ausgangssituation ist eine Datenbank mit 300.000 Datensätzen mit ca. 70 Datenbankfeldern pro DS.
Es sind natürlich eindeutige Kategorien und IDs vergeben.
Wenn ich nun auf einer Seite eine Ausgabe generiere, auf die nur bestimmte Kriterien zutreffen ergibt sich eine bestimmte Anzahl von SQL Ergebnissen
Select Alles where kriterium = Abfrage(ca. 30.000).
In dieser Query würde das Datum und ca. 10 weitere Felder (true/False bzw. LIKE )ausgewertet werden.
Also eine nette aufwendige Abfrage.
Da sich aber nur 4 x am Tag meine Kriterien ändern, würde ich gerne einen Cronjob einführen, der mir meine Ergebnisse 4 x am Tag in Kategorien aufgeteilt in eine Tabelle zwischenspeichert und dabei nur IDs der zutreffenden Datensätze speichert.
Diese IDs würde ich dann für die eigentliche Ausgabe hernehmen.
Also in etwa so: select Alles where Datensatz ID = Ergebnis ID aus Zwischentabelle. -> Ausgabe…
Dadurch würden sich meine weiteren Abfragen ja nur mit ca. 30.000 DS beschäftigen müssen.
Meine konkrete Frage!!!
Wäre dies eine wesentliche Verbesserung der Performance beim Aufrufen der Seite oder bewegt sich das nur im geringen Maße (unter 1 Sekunde) zu einer jedesmal aufgerufenen Funktion?
Und wie ist es mit der Serverauslastung? Diese wäre doch bestimmt geringer oder?
Vielen Dank schonmal… Andreas