wie ihr in den letzten Wochen vielleicht mitbekommen habt, kam es von Zeit zu Zeit vor das das Forum 30 Sekunden (oder auch mehr) nicht mehr richtig funktioniert hat. Das lag an dem rdf.php Script das eine nicht ganz so optimate Datenbankanfrage gestellt hat.
Das Problem ist nun aber behoben, die Ladezeit von rdf.php konnten wir auf < 1 Sekunde reduzieren.
Wen es interessiert, hier der technische Hintergrund: das alte rdf.php hat eine Datenbank Anfrage ueber vier Tabellen gestellt, die etwa so aussah:
Code: Alles auswählen
SELECT t.topic_id, t.topic_title, p.post_id, p.post_time, pt.post_text, pt.bbcode_uid, f.forum_name
FROM dfdeforum_topics AS t, dfdeforum_posts AS p, dfdeforum_posts_text AS pt, dfdeforum_forums AS f
WHERE
f.forum_id = t.forum_id
AND f.auth_view = 0
AND p.topic_id = t.topic_id
AND p.post_id = t.topic_last_post_id
AND pt.post_id = p.post_id
ORDER BY p.post_time DESC LIMIT 10;
Das neue Script nutzt eine cache Tabelle in der immer die aktuellsten Posting (aber immer weniger als 1000) gehalten werden. Das eigentliche Script greift nicht mehr direkt auf die phpBB Tabellen zu, sondern auf die cache Tabelle. Dadurch muss nur noch ein Bruchteil der Daten verarbeitet werden und auch nur noch in einer Tabelle.
Den Quellcode und eine entsprechende Anleitung zum Eintrichten werde ich Morgen veroeffentlichen.
by, Martin