[project info] Optimierungen für die Statistik 1.1

Dieses Thema im Forum "News & Feedback" wurde erstellt von rellek, 7 Mai 2006.

  1. rellek

    rellek relativ sensationell Mitarbeiter

    Hi,

    diese Infos könnten interessant sein, vor allem wenn die Statistik auf einem *etwas* größerem Board betrieben wird.

    Es wird bei der überwiegenden Anzahl der Aufrufe einer Forenseite eine DB-Abfrage eingespart. Es geht konkret um die Ermittlung der aktiven Benutzer im Forum. Die Abfrage ist zwar jetzt nicht mehr ganz so genau, wie sie ursprünglich war, aber dafür viel besser für den Server. Sie wird nämlich nur noch ausgeführt, wenn sich an dem Wert auch wirklich etwas ändert.
    Im Anhang ist auch noch eine aktualisierte statistics.php, diese hat glaub ich einen Bug gefixt und auch in sich noch eine kleinere Optimierung.

    Anwendung auf eigene Gefahr! Die Änderungen werden auch in der Statistik 1.2 (oder wie auch immer die heißen wird) enthalten sein, aber Näheres kann dazu noch nicht gesagt werden.

    Hier die Anleitung:
    Code:
    ./global.php
    suche:
    list($result) = $db->query_first("SELECT COUNT(*) AS count FROM bb".$n."_users WHERE lastactivity >='$today';");
    
    löschen
    
    suche:
    $db->query("UPDATE bb".$n."_statistics SET users=$result,hits=hits+1 WHERE date>=$today;");
    
    ersetze durch:
    $db->query("UPDATE bb".$n."_statistics SET hits=hits+1 WHERE date>=$today;");
    
    ./login.php
    suche:
    $db->unbuffered_query("DELETE FROM bb".$n."_sessions WHERE userid = '$result[userid]'", 1);
    
    davor einfügen:
    		$today = mktime(0,0,0, date("m", time()), date("d", time()), date("Y", time()));
    		if($result['userid'] != 0 && $result['lastactivity'] < $today) $db->query("UPDATE bb".$n."_statistics SET users=users+1 WHERE date>=$today;");
    
    
    ./register.php
    suche:
    $db->query("UPDATE bb".$n."_sessions SET userid = '".$insertid."', styleid='".intval($r_styleid)."', langid='".intval($r_langid)."' WHERE sessionhash = '$sid'");
    
    davor einfügen:
    $today = mktime(0,0,0, date("m", time()), date("d", time()), date("Y", time()));
    $db->query("UPDATE bb".$n."_statistics SET users=users+1 WHERE date>=$today;");
    
    
    ./acp/lib/session.php
    
    suche:
    $db->unbuffered_query("DELETE FROM bb".$n."_sessions WHERE userid = '$session[userid]'", 1);
    
    davor einfügen:
    			$today = mktime(0,0,0, date("m", time()), date("d", time()), date("Y", time()));
    			if($wbbuserdata['userid'] != 0 && $wbbuserdata['lastactivity'] < $today) $db->query("UPDATE bb".$n."_statistics SET users=users+1 WHERE date>=$today;");
    Und hier die statistics.php:
     

    Anhänge:

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deinem Erleben anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden