Aenderungen am rdf.php Script

Neues rund um debianforum.de
Antworten
Benutzeravatar
blackm
Moderator und Co-Admin
Beiträge: 5918
Registriert: 02.06.2002 15:03:17
Lizenz eigener Beiträge: MIT Lizenz

Aenderungen am rdf.php Script

Beitrag von blackm » 29.01.2005 21:11:51

Hi,

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;
Bei der Anzahl der Postings und der Thema hat es trots der neuen Hardware manchmal ewig gedauert bis die Anfrage durch war.
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
Schöne Grüße

Martin

Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden

Antworten