emrox_de
Mitglied Junior Boarder
| Beiträge: 6 |   |
|
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);
|
|