RSS auf Suchanfragen (Performance)
Joah.
- php
Hallo,
wir betreiben einen Kleinanzeigenmarkt und bieten seit kurzem auch RSS Feeds an. So können div. Rubriken, die neusten Anzeigen etc. abonniert werden.
Zusätzlich möchte ich Suchabfragen zum abonnieren anbieten. Umsetzung ist kein Problem, RSS wird über PHP dynamisch erzeugt, lediglich die Performance macht mir hier etwas Sorgen. Hat jemand eine Ahnung, wie es performancemässig bei großen Seiten aussieht? Ist davon abzuraten, RSS auf Suchabfragen anzubieten? Gibt es irgendwo im Web mehr darüber zu lesen?
Danke für eure Unterstützung.
Joah.
hi,
Zusätzlich möchte ich Suchabfragen zum abonnieren anbieten. Umsetzung ist kein Problem, RSS wird über PHP dynamisch erzeugt, lediglich die Performance macht mir hier etwas Sorgen. Hat jemand eine Ahnung, wie es performancemässig bei großen Seiten aussieht? Ist davon abzuraten, RSS auf Suchabfragen anzubieten?
In wie fern macht dir die Performance sorgen?
Befürchtest du, dass die User ihre RSS-Feeds zu oft abrufen könnten, und du somit die Anfragen zu oft durchführen müsstest?
Dann könntest du entweder die Suchanfragen in bestimmten Intervalen automatisiert ausführen lassen, und die Ergebnisse cachen - so dass du nicht bei jedem Feedabruf eine komplizierte Suchquery ausführen lässt, sondern nur mittels einer Suchabfragen-ID in deinem Cache nachschaust, ob es zu dieser Abfrage etwas neues gibt;
Oder du merkst dir, wann der User den Feed zum letzten Mal abgerufen hat - und wenn dies nicht mindestens x Stunden her ist, dann lieferst du ihm keine Daten zurück.
gruß,
wahsaga
Hi Wahsage,
danke für deine Tips.
hi,
Zusätzlich möchte ich Suchabfragen zum abonnieren anbieten. Umsetzung ist kein Problem, RSS wird über PHP dynamisch erzeugt, lediglich die Performance macht mir hier etwas Sorgen. Hat jemand eine Ahnung, wie es performancemässig bei großen Seiten aussieht? Ist davon abzuraten, RSS auf Suchabfragen anzubieten?
In wie fern macht dir die Performance sorgen?
Befürchtest du, dass die User ihre RSS-Feeds zu oft abrufen könnten, und du somit die Anfragen zu oft durchführen müsstest?Dann könntest du entweder die Suchanfragen in bestimmten Intervalen automatisiert ausführen lassen, und die Ergebnisse cachen - so dass du nicht bei jedem Feedabruf eine komplizierte Suchquery ausführen lässt, sondern nur mittels einer Suchabfragen-ID in deinem Cache nachschaust, ob es zu dieser Abfrage etwas neues gibt;
Oder du merkst dir, wann der User den Feed zum letzten Mal abgerufen hat - und wenn dies nicht mindestens x Stunden her ist, dann lieferst du ihm keine Daten zurück.
gruß,
wahsaga
Leider kann ich das SQL nicht cashen, da wir die Keywords über eine temporäre Tabelle und einem INNER JOIN zur Anzeigentabelle verknüpfen. Demnach wäre das reine SQL, das ausgeführt wird identisch, egal ob du jetzt nach Holzbein oder Mountainbike suchst. Muß ich mir wohl was anderes überlegen, trotzdem vielen Dank für deine Ideen (vielleicht kann ich mit deiner 2. Überlegung was anfangen).
Gruß
Joah.
Leider kann ich das SQL nicht cashen, da wir die Keywords über eine temporäre Tabelle und einem INNER JOIN zur Anzeigentabelle verknüpfen. Demnach wäre das reine SQL, das ausgeführt wird identisch, egal ob du jetzt nach Holzbein oder Mountainbike suchst. Muß ich mir wohl was anderes überlegen, trotzdem vielen Dank für deine Ideen (vielleicht kann ich mit deiner 2. Überlegung was anfangen).
Hallo,
nicht SQL cachen sondern RSS. 1x SQL ausführen RSS-Datei erzeugen und irgendwo speichern. dann bei jedem Aufruf checken ob das aktuelle Datum schon länger als zB eine Stunde von der Erzeugung der RSS-Datei her ist. Wenn nicht RSS-Datei ausliefern ansonsten SQL ausführen und RSS erzeugen, dann ausliefern.
Schöne Grüße