#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 ) + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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? + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren