[PHP] Datenzugriff bei Forum mit DB, XML oder anderer Cache

Dieses Thema im Forum "Webentwicklung" wurde erstellt von MakenX, 2. Juni 2007 .

?

Welche Alternative für Datenzugriff?

Diese Umfrage wurde geschlossen: 12. Juni 2007
  1. Alleiniger Datenbankzugriff?

    4 Stimme(n)
    57,1%
  2. Caching mit Cache_Lite?

    1 Stimme(n)
    14,3%
  3. Caching mit XML - Dateien?

    1 Stimme(n)
    14,3%
  4. Caching mit XML - Dateien und "Direktausgabe" über XLST?

    1 Stimme(n)
    14,3%
  1. 2. Juni 2007
    Datenzugriff bei Forum mit DB, XML oder anderer Cache

    EDIT: BITTE AUCH WAS SCHREIBEN

    Nabend Jungs und Mädels,

    hab im Moment ein "interessantes" Problem und ich weiß nicht genau für welche Lösung ich mich entscheide. Ich betreibe im Moment ein kleines Forum, was jedoch durch gewisse Google Ränge von Bots "gebombt" wird und da ich aktuell ein Communityscript baue, integriere ich auch direkt ein neues "Anti-Bot"/"Anti Hacker"/"Anti Tabellen" Forum. Mein eigentliches Problem läßt sich nicht nur auf das Forum beziehen sondern auf das ganze "CMS".

    Also, ich weiß nicht auf welche Art und Weise ich auf die Daten zugreife. Persistent speichern tue ich sie natürlich in einer Datenbank, aber welcher Zugriff auf diese Datenbank ist der performanteste. Hier die Alternativen die ich einbauen will/würde...

    1. direkter Datenbank Zugriff
    Diese Lösung ist natürlich am Einfachsten zu implementieren, jedoch haben wir hier das Problem, dass quasi das komplette "CMS" von der DB abhängig ist und wenn die Queryzahl zu groß wird, meine ganze Seite quasi tot ist. Kann man diesen Fakt jedoch gegenüber den anderen Methoden ignorieren?

    2. Gecachte DB - Trupel mit PEAR Paket Cache_Lite
    Die andere Möglichkeit wäre das Cachen mit Cache_Lite, ich möchte hier nur Cache_Lite des Cache - Paketes nutzen, da ich nur ein einfaches Caching brauche. Speichern bis spätestens zum Timeout -> Löschen, mehr brauche ich nicht. Caching mit Smarty etc. möchte ich hierfür nicht verwenden.
    Klar mit dieser Methode speichere ich mir einige Querys jedoch frage ich mich hier, wird diese Einsparung nicht damit wieder aufgefressen, weil das "direkte" Dateisystem des Servers mehr belastet wird und das Caching auch erstmal durch das Script laufen muss?!

    3. "Gecachte" DB - Trupel in XML - Dateien
    Eine andere Möglichkeit für mich wäre mit den PHP - Methoden XML Dateien anzulegen womit ich mir auch wieder Querys sparen kann, aber auch wieder hier "Probleme" wie Punkt 2. Wie groß werden diese XML - Dateien?! Belastungen des Dateisystems? PHP Scriptlaufzeit bei XML - Dateiverarbeitung?!

    4. "Direktausgabe" der XML - Dateien aus Punkt3 über XLST
    Dank Punkt drei wäre es ja möglich, weitere Rechenzeit des Servers über "Direktausgabe" der XML Dateien. Wäre das praktikale diese Dateien öffentlich zugänglich zu machen? Lassen sich XML - Dateien über XLST z.B. direkt in HTML Dateien einbinden? Die "Solo-Ausgabe" kenne ich (wie z.B. Sitemap von Drupal), aber nicht so die kombinierte Ausgabe mit einer TemplateEngine z.B. Smarty für xHTML.

    Vielleicht habt ihr Meinungen oder Erfahrungen die ihr mir mitteilen möchtet ...
    Ich danke im Voraus und hoffe dass es diesmal mehr Antworten gibt als mein Thread über die Status-Codes (Antworten 0 )
     
  2. 3. Juni 2007
    AW: Datenzugriff bei Forum mit DB, XML oder anderer Cache

    Ich denke bei jeder Lösung wirst du das Problme haben, dass sobald du zuviele User hast dein Db-Server abschmieren wird.

    Bei unserem CMS haben wir die Daten-Speicherung über XML-Files gewählt. Die Dateigrösse hält sich im Rahmen und die Perormance ist auch nicht schlecht.
    www.anomey.ch
     
  3. 4. Juni 2007
    AW: Datenzugriff bei Forum mit DB, XML oder anderer Cache

    Jo ich denke auch das läßt sich nicht verhindern wenn mann sich kein eigenes Loadbalancing leisten kann und sich da erstmal noch auf andere verlassen muss. Aber kann es ja versuchen so gut es geht zu lösen. Speichert ihr komplett in XML, ohne Datenbank?
     
  4. 4. Juni 2007
    AW: Datenzugriff bei Forum mit DB, XML oder anderer Cache

    ist eigentlich recht einfach, weil für viele teile einer CMS kannst du überhaupt kein caching benutzen da der content sich ständig neu generiern muss...

    für seiten wo das zb nur alle 5 minuten der fall sein muss würde ich ganz einfach das smarty template system nutzen und dort die vorhandene caching funktion... tenisch gesehn sehr einfach, es wird eben alle 5 minuten eine statische datei erzeugt und beim zugreifen auf die php wird diese ausgeliefert ohne das die php durchläuft und nochmal querys macht.


    aber zu deiner eigentlichen frage:
    es ist in php weitaus schneller, wenn du zb bei einer suche, die ergebnisse bekommst und zwischenspeicherst für spätere aufrufe und dies in einer cache_tabelle direkt in der db zu speichern als extren in xml format...

    der zugriff mit einem simplen select auf eine tabelle die recht klein ist, ist 100 mal schneller als wenn du diese daten aus einer externen datei öffnest und dann noch aufwendig auslesen musst.
    (sonst würden ja alle ihre gecachten suchanfragen extern speichern wenns schneller wäre)

    für ein forum ist das ganze etwas problematisch, dort ist ein caching durchaus komplex weil du nur teile cachen kannst aber nie den ganzen inhalt, da dieser sich ja in echtzeit ändert...

    du kannst aber zb einen großteil des templates vorcachen teilweise aber auch ganze themen oder beiträge, was jedoch bei einem stark frequenziertem boards mit über 2 millionen beiträgen ziemlich speicher fressend wird...
    es hatt halt sinn wenn man hochfrequenzierte beiträge und themen cacht da das viele querys spaart, aber wenn jemand über die suche auf ein uraltes thema stößt wäre es nur speicher verschwendung das zwischenzuspeichern... weil bis der nächste das aufruft sind 2 jahre vergangen

    hier ein auszug aus einem suchergebniss cacher, das macht halt sinn weil die suche neu zu starten weitaus aufwendiger und länger dauert als die paar select... den nicht die anzahl der querys ist ausschlaggeben sondern die art.

     
  5. 10. Juni 2007
    AW: Datenzugriff bei Forum mit DB, XML oder anderer Cache

    Danke raid, genau das habe ich mir nämlich auch gedacht, dass das Caching über Dateien mehr Load für den kompletten Server verursacht als einfache Queries. Klar Templateansichten etc. werden gecached keine Frage und hochfrequentierte Einträge wollte ich in dem Fall über xml machen, der Vorteil hierbei liegt meiner Meinung nach, das oft frequentierte Dateien vom Server auch wieder anders gecached werden. Und zu gewissen Tagenzeiten wird dann diese xml wieder mit der Datenbank abgeglichen. Klar irgendwann laufen meine Cachedateien auch ab, alte Beiträge werden ich nicht "auf Platte" halten.
     
  6. 26. Juni 2007
    AW: Datenzugriff bei Forum mit DB, XML oder anderer Cache

    Jop wir brauchen keine MySQL-DB sondern alles wird über XML gemacht
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.