HOERANDL.com Impressum Unterstützung Projekte Kontakt


Baue auf deiner Homepage einen oder mehrere Zufallswitze von Funny4You ein. Die Installation ist kinderleicht und die notwendige Registrierung ist vollkommen unverbindlich und kostenlos. Als optionales Feature ist eine Hitliste auf der Homepage die deine Seite verlinkt.
weiter zur Witzebox ...
 
header
header
header
emrox_de
Mitglied
Junior Boarder
Beiträge: 6
graphgraph
 
func_show.inc.php Speed Optimierungen - 15/08/2007 13:45 Hier ein paar einfache Geschwindigkeitsoptimierungen (ich bin sich es laesst sich noch weiter Optimieren (Querys weiter zusammenfassen etc))

Alt:
Code:

 $b4yc_max_visits     mysql_result(mysql_query("  SELECT visits      FROM ".$b4yc_db_table."counter_max"),0,0); $b4yc_max_user       mysql_result(mysql_query("  SELECT user        FROM ".$b4yc_db_table."counter_max"),0,0); $b4yc_visits_all     mysql_result(mysql_query("  SELECT visits_all  FROM ".$b4yc_db_table."counter_max"),0,0); $b4yc_page_hits      mysql_result(mysql_query("  SELECT max_hits    FROM ".$b4yc_db_table."counter_max"),0,0);



Neu:
Code:

 $maxstatsel             mysql_query("SELECT visits AS max_visits, user AS max_user, visits_all AS  visits_all, max_hits AS page_hits FROM ".$b4yc_db_table."counter_max"); $maxstatres             mysql_fetch_assoc($maxstatsel); $b4yc_max_visits        $maxstatres['max_visits']; $b4yc_max_user          $maxstatres['max_user']; $b4yc_visits_all        $maxstatres['visits_all']; $b4yc_page_hits         $maxstatres['page_hits'];



-> Nur ein Select fuer alle 4 Abfragen (=schneller)

Alt:
Code:

 $b4yc_user_online    mysql_num_rows(mysql_query("SELECT id          FROM ".$b4yc_db_table."counter_data WHERE time>'".($b4yc_aktuelle_zeit-$b4yc_verfall)."'")); $b4yc_lastday        mysql_num_rows(mysql_query("SELECT id          FROM ".$b4yc_db_table."counter_data WHERE date='".date("Y-m-d"$b4yc_aktuelle_zeit-86400)."'")); $b4yc_visits         mysql_num_rows(mysql_query("SELECT id          FROM ".$b4yc_db_table."counter_data WHERE date='".date("Y-m-d"$b4yc_aktuelle_zeit)."'"));



Neu:
Code:

 $b4yc_user_online       mysql_result(mysql_query("SELECT COUNT(id) FROM ".$b4yc_db_table."counter_data WHERE time>'".($b4yc_aktuelle_zeit-$b4yc_verfall)."'"),0);   $b4yc_lastday           mysql_result(mysql_query("SELECT COUNT(id) FROM ".$b4yc_db_table."counter_data WHERE date='".date("Y-m-d"$b4yc_aktuelle_zeit-86400)."'"),0); $b4yc_visits            mysql_result(mysql_query("SELECT COUNT(id) FROM ".$b4yc_db_table."counter_data WHERE date='".date("Y-m-d"$b4yc_aktuelle_zeit)."'"),0);



-> COUNT(id) arbeitet schneller als mysql_num_rows. (mysql_num_rows sollte man nur verwenden wenn man sowieso schon ein Ergebnis vorliegen hat welches man anderweitig benutzt)


Alt:
Code:

 $b4yc_query "SELECT iphits FROM ".$b4yc_db_table."counter_data WHERE date='".date("Y-m-d"$b4yc_aktuelle_zeit-86400)."'"; $b4yc_result mysql_query($b4yc_query) or die (mysql_error());                                                                                       $b4yc_page_lastday=0;                                                                                                                                 while ($b4yc_daten mysql_fetch_array($b4yc_result))                                                                                                 {                                                                                                                                                      $b4yc_page_lastday $b4yc_page_lastday $b4yc_daten[0];                                                                                     }



Neu:
Code:

 $b4yc_page_lastday mysql_result(mysql_query("SELECT SUM(iphits) FROM ".$b4yc_db_table."counter_data WHERE date='".date("Y-m-d"$b4yc_aktuelle_zeit-86400)."'"),0,0);



-> MySQL ist in jedem Fall schneller als eine Schleife im PHP

Das gleiche fuer die Seitenaufrufe Heute:
Alt:
Code:

 $b4yc_query "SELECT iphits FROM ".$b4yc_db_table."counter_data WHERE date='".date("Y-m-d"$b4yc_aktuelle_zeit)."'"; $b4yc_result mysql_query($b4yc_query) or die (mysql_error());                                                                                        $b4yc_page_day=0;                                                                                                                                      while ($b4yc_daten mysql_fetch_array($b4yc_result))                                                                                                  {                                                                                                                                                       $b4yc_page_day $b4yc_page_day $b4yc_daten[0];                                                                                              } 



Neu:
Code:

 $b4yc_page_day mysql_result(mysql_query("SELECT SUM(iphits) FROM ".$b4yc_db_table."counter_data WHERE date='".date("Y-m-d"$b4yc_aktuelle_zeit)."'"),0,0);

  | | Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
Cougar
Admin
Admin
Beiträge: 622
graph
 
Re:func_show.inc.php Speed Optimierungen - 15/08/2007 15:05 Hallo emrox_de,

du bist echt klasse!

Ich habe mich zwar lange beschäftigt mit der Performance des Counters, nur wie ich sehe gibt es da noch immer vieles zum Optimieren.

VIELEN LIEBEN DANK für die Meldungen!

Liebe Grüße,
Cougar

  | | Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
emrox_de
Mitglied
Junior Boarder
Beiträge: 6
graphgraph
 
Re:func_show.inc.php Speed Optimierungen - 17/09/2007 10:26 Ich mache nicht extra noch ein neues Topic auf.

Folgendes habe ich nach einigen Beobachtungen der Datenbankabfragen noch geaender

Tabelle b4yccounter_data Key auf die Spalte date einen Key gelegt, da ueber diese Spalte recht viele Abfragen gemacht werden.
Code:

 ALTER TABLE b4yccounter_data ADD KEY (date);



Hier der vollstaendige Create-String fuer diese Tabelle:
Code:

 CREATE TABLE `b4yccounter_data` (   `idint(11NOT NULL auto_increment,   `ipvarchar(15NOT NULL default '',   `timeint(11NOT NULL,   `datedate NOT NULL default '0000-00-00',   `clientvarchar(255NOT NULL default '',   `hostvarchar(255NOT NULL default '',   `referervarchar(255NOT NULL default '',   `iphitsint(11NOT NULL default '0',   KEY `id` (`id`),   KEY `ip` (`ip`,`time`,`date`),   KEY `time` (`time`),   KEY `date` (`date`) )



Weiterhin habe ich noch einige Aenderungen vorgenommen, welche ich aufgrund der Lizenzbestimmungen des Scriptes (ich darf u.a. keine Code-Veraenderungen vornehmen) nicht veroeffentlichen werde. (Diese Aenderungen entlasten die Datenbank jedoch um einiges, weswegen ich auf diese nicht verzichten kann)
Die durch den Zaehler verursachte Auslastung des Servers hat sich damit auf ein Minimum (geschaetzt mindestens ein Fuenftel) gesenkt.
  | | Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
Cougar
Admin
Admin
Beiträge: 622
graph
 
Re:func_show.inc.php Speed Optimierungen - 17/09/2007 18:18 Hallo emrox_de,

Vielen lieben Dank für deine Meldungen!

Ich bin mir sicher das deine Performanceänderungen für viele Benutzer des Counters sehr von Vorteil sind. Daher frage ich dich ob du mir deinen geänderten Counter zuschicken würdest. (Kontaktformular) Wäre echt super von dir!

Dann könnte ich diese "heigh speed" - Version direkt als Download anbieten.

Als kleines Dankeschön erhälst du natürlich die Erlaubnis alle sichtbaren Copyrights zu entfernen, und ich werde (wenn du es möchtest) dich namentlich in der "Readme.htm" bzw. auf der "Informationsseite zum Script" mit Link zu deiner HP nennen.

THX!

Liebe Grüße,
Cougar

  | | Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
spacer
header


spacer
Preisliste
Preisliste

B4YCounter 4.x.x

Lizenz der kommerziellen Nutzung
auf einer Domain: 12,00 €

Lizenz für eine Copyright-freie Version: 12,00 €

B4YFormmailer 2.x.x

Lizenz für eine Copyright-freie Version: 10,00 €

B4YVotum 1.x.x

Lizenz für eine Copyright-freie Version: 5,00 €


Da ich noch keinen Online-Shop habe kannst du über mein Kontaktformular die Lizenz bestellen!
Forum - letzte Themen
PayPal Spende
Findest du die hier angebotenen Scripte und dessen Support toll?
Dann kannst du mir per PayPal eine kleine Spende zukommen lassen.
Ich würde mich freuen.


Vielen Dank!