Zur Boardunity Forenstartseite

Zurück   Boardunity & Video Forum » Technik » Programmierung und Datenbanken » Entwicklung und Konzeption sozialer Software

Antwort
 
LinkBack (1) Themen-Optionen Thema bewerten
  #26  
Alt 17.08.2005, 22:23
Mitglied
 
Registriert seit: 08.2005
Beiträge: 11
Hallo,
Zitat:
Orginal von Gérome
Um die Datenbank nicht mehr als nötig zu belasten, wird der HTML-Code, der in den Cache geschrieben werden soll, mittels gzipdeflate() komprimiert. Das für die Anzeige nötige Dekomprimieren benötigt lediglich eine verschwindend geringe Zeit, welche bei der Auslieferung nicht ins Gewicht fällt.

  #27  
Alt 20.08.2005, 12:07
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.639
Hallo!
Bei Gérome's Lösung handelt es sich um eine individiuelle Lösung speziell auf seinen Server angepasst deswegen hat er sich wohl keine Gedanken darum gemacht was passiert, wenn zlib nicht vorhanden ist.

Da diese Optimierungsschritte eigentlich erst bei grösseren Foren Sinn machen kann man zlib auch als 'vorhanden' ansehen da diese Foren meist auf Servern laufen wo man es ohne Probleme aktivieren/installieren/kompilieren/sonstwielieren kann

  #28  
Alt 20.08.2005, 12:14
Benutzerbild von Gérome
*wurgelpurgel*
 
Registriert seit: 08.2003
Ort: Server-Raum im Keller
Beiträge: 243
Hallo,

sorry, dass ich ich hier nicht zu Wort geäußert habe. Hier gingen in den vergangdenen Tagen einige Dinge drunter und drüber.

Man kann sich die Komprimierung auch sparen - jedoch fält sie hinsichtlich der Laufzeit nicht ins Gewicht. Wider Erwarten, möchte ich hinzufügen - aber ich habe es mehrfach getestet. Die Datenbank freut's, sie wird dadurch kleiner, da sich HTML meist recht gut komprimieren lässt. Man kann das 'Spiel' natürlich beliebig weit treiben und einen Konfig-Schalter für die Komprimierung einbauen.

Grüße,
Gérome

  #29  
Alt 20.08.2005, 12:40
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.639
Sollte das komprimieren wirklich ins Gewicht fallen könnte man den Konfig-Schalter ja mit dem Serverload koppeln

  #30  
Alt 20.08.2005, 12:50
Benutzerbild von Gérome
*wurgelpurgel*
 
Registriert seit: 08.2003
Ort: Server-Raum im Keller
Beiträge: 243
Lass mich überlegen... Im Moment erscheint mir das kaum sinnvoll. Der Text wird ja nur einmal komprimiert. Und zwar nach dem Erstellen bzw. nach dem Editieren. Wenn das phpBB einen Beitrag in den Suchindex fummelt ... sorry ... einpflegt ... entsteht dabei eine Last, die die Last des Komprimierens um Größenordnungen übertrifft.

Bleibt also das Dekomprimieren und um das kommt man nicht umhin, wenn der Beitrag erstmal komprimiert in der DB steht.

Aber ich will jetzt auch nicht als bedingungsloser Verfechter der Komprimierung dastehen. *g* Kann ja jeder machen, wie er mag. ;-)


Grüße,
Gérome

  #31  
Alt 21.08.2005, 13:04
Benutzerbild von Luki
Administrator
 
Registriert seit: 02.2004
Ort: Hamburg
Beiträge: 486
irgendwie die richtige Parsetree Technik wurde anscheinend bei allen Foren noch nicht gefunden!

revolutionär wäre ja mal wenn die Forensoft die fertig geparsten Beiträge normal abspeichert und nur beim editieren wieder rückwärts von HTML in Boardtagsprache umwandelt!!!

wäre eigentlich mal ein sinnvolles, machbares aber nicht einfaches Projekt! - wer ist dabei?

  #32  
Alt 21.08.2005, 13:26
Mitglied
 
Registriert seit: 10.2003
Ort: Bottrop
Beiträge: 779
Rapidforum.

Inklusive all jener dabei entstehender Probleme. Kurz um: Vergiss es.

__________________
Patrick Gotthardt
Patrick Gotthardt on Software
  #33  
Alt 21.08.2005, 14:48
Mitglied
 
Registriert seit: 08.2005
Beiträge: 11
Hallo,
@Luki: Ein weiteres Problem wäre, wenn man etwas an den BBCodes, Template für Zitate o.ä. ändert.
Beim phpBB3 müsste man nur den Cache leeren, bei dir müsste man dann alle Beiträge zurück in BBCodes übersetzen, und neu parsen.
Und bei 1 Mio. Beiträge kann das dauern....

  #34  
Alt 21.08.2005, 15:42
Mitglied
 
Registriert seit: 05.2005
Beiträge: 53
Zitat:
Zitat von Andavos
Hallo,
@Luki: Ein weiteres Problem wäre, wenn man etwas an den BBCodes, Template für Zitate o.ä. ändert.
Beim phpBB3 müsste man nur den Cache leeren, bei dir müsste man dann alle Beiträge zurück in BBCodes übersetzen, und neu parsen.
Und bei 1 Mio. Beiträge kann das dauern....
Dann löscht man halt einfach den Cache und baut noch zusätzlich ein, dass falls ein Benutzer sich einen Beitrag anguckt, der noch nicht im Cache vorhanden ist, eben geparsed wird und dann im Cache gespeichert wird.

  #35  
Alt 21.08.2005, 16:20
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.639
..so erledigt sich das Problem von allein

Aber kosten die Abfrage (ist der Beitrag schon im Cache) nicht auch Zeit? Ist ja jedesmal ne Datenbankabfrage..
Und bei 1.000.000 Beiträgen ein array mit den Beiträgen zu erstellen die nicht im Cache sind ist unmöglich

Aber.. Warum eigentlich nicht nur die Beiträge im Cache lassen deren letzte Aktivität > 30 Tage (?) zurück liegt?

  #36  
Alt 21.08.2005, 18:59
Mitglied
 
Registriert seit: 08.2005
Beiträge: 11
Hallo,
hmm so extrem Rechenintensiv ist es auch nicht:
<?php
$erg = mysql_query("SELECT postid, beitrag FROM cache WHERE threadid = '$threadid'");
//postid und beitrag in einem Array speichern


//postdb Abfragen. Wenn postid im Cache Array vorhanden, beitrag ausgeben. Sonst parsen.
?>

Ist im Grunde nur 1 DB-Abfrage pro Thread mehr.

Man könnte es auch Threadweise machen.
In der ThreadDb steht, ob dieser Thread im Cache sich befindet.

Wenn ja:
SELECT * FROM cache WHERE threadid = '$threadid'

Wenn nein:
SELECT * FROM postdb WHERE threadid = '$threadid'

Man müsste aber sicher stellen, dass im Cache sich dann alle Beiträge des Threads befinden.

  #37  
Alt 21.08.2005, 21:07
Benutzerbild von Fabchan
früher Dracaelius
 
Registriert seit: 10.2003
Ort: Seesen
Beiträge: 354
Eigentlich braucht man im Idealfall sogar nur eine Abfrage, wenn man ein JOIN verwendet.

Code:
SELECT p.*, c.postparsed FROM postdb p LEFT JOIN cache c ON (p.postid = c.postid)
Anschließend guckt man, ob die Variable "postparsed" gesetzt ist, wenn nicht, dann fügt man den geparsten Post per INSERT in die Cache-Tabelle ein, nachdem er geparst wurde.

__________________
Fabian Michael
"Ein Tag, an dem du nicht lächelst, ist ein verlorener Tag."
- Charlie Chaplin

Wiki
  #38  
Alt 23.08.2005, 21:32
Benutzerbild von LonelyPixel
UNB-Entwickler
 
Registriert seit: 01.2004
Ort: Erlangen
Beiträge: 974
Zitat:
Zitat von MrNase
Aber.. Warum eigentlich nicht nur die Beiträge im Cache lassen deren letzte Aktivität > 30 Tage (?) zurück liegt?
So einfach geht das, gell? Das war jedenfalls auch mein Plan.

__________________
Yves Goergen
Softwareentwicklung, Fotografie, Webhosting, UNB Components (in Arbeit)
Antwort


Stichworte
caching


Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu

LinkBacks (?)
LinkBack to this Thread: https://boardunity.de/konzept-speichern-geparsten-beitr-gen-t2822.html
Erstellt von For Type Datum
Cachen von SQL Queries :: phpBB.de - Aktuelle Version: phpBB2.0.21 This thread Refback 18.11.2006 01:07

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Dateien verschlüsselt speichern Fabchan Programmierung und Datenbanken 4 03.05.2004 13:59






1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25