sergey24
16.09.2004, 21:29
Всем привет
Не успел толком протестить рейтинг как начались выявляться глюки :-)
первое из них самый актуальный
в конце счетщика стоит закрытие соеденения с базой mysql_close()
но ведать не всегда до этой команды доходит очередь
и частенько база подвисает
и пишет сообщение Too many connections
типа очень много соеденений
нарузка на базу маленькая около 20 000 хитов в сутки
как из этого положения выйти?
вот исходник ядра статистики:
include 'connect.php';
include 'function_top.php';
if (getenv('HTTP_X_FORWARDED_FOR'))
{
$ip=getenv('HTTP_X_FORWARDED_FOR');
}
{
$ip=getenv('REMOTE_ADDR');
}
$host = gethostbyaddr("$ip");
if (!$ip){$ip = "unknown";}
if (!$host){$host = "unknown";};
if (empty($id)){$id=2;};
$t2='ip'.$id;
$t1='iplog'.$id;
$date= date ("Ym.d");
$sql = mysql_query ("select * from ".$t2." where date = '$date'");
if (mysql_num_rows($sql)==0){
mysql_query ("insert into ".$t1."( date) values ('$date');");
};
page();
refer();
$sql = mysql_query ("select * from ".$t2." where date ='$date' AND basehost = '$ip'");
if (mysql_num_rows($sql)>0){ mysql_query ("update ".$t1." set hit = hit + 1 where date = '$date' "); mysql_query ("update ".$t2." set total = total + 1 where date = '$date' AND basehost='$ip' ");
}
else{
mysql_query ("insert into ".$t2." values ('$date', '$ip','$host','1');"); mysql_query ("update ".$t1." set hit = hit + 1, host = host + 1 where date = '$date' ");
countr();
hars();
browser();
os();
del();
update();
updatop();
};
mysql_close();
что по советуете?
Не успел толком протестить рейтинг как начались выявляться глюки :-)
первое из них самый актуальный
в конце счетщика стоит закрытие соеденения с базой mysql_close()
но ведать не всегда до этой команды доходит очередь
и частенько база подвисает
и пишет сообщение Too many connections
типа очень много соеденений
нарузка на базу маленькая около 20 000 хитов в сутки
как из этого положения выйти?
вот исходник ядра статистики:
include 'connect.php';
include 'function_top.php';
if (getenv('HTTP_X_FORWARDED_FOR'))
{
$ip=getenv('HTTP_X_FORWARDED_FOR');
}
{
$ip=getenv('REMOTE_ADDR');
}
$host = gethostbyaddr("$ip");
if (!$ip){$ip = "unknown";}
if (!$host){$host = "unknown";};
if (empty($id)){$id=2;};
$t2='ip'.$id;
$t1='iplog'.$id;
$date= date ("Ym.d");
$sql = mysql_query ("select * from ".$t2." where date = '$date'");
if (mysql_num_rows($sql)==0){
mysql_query ("insert into ".$t1."( date) values ('$date');");
};
page();
refer();
$sql = mysql_query ("select * from ".$t2." where date ='$date' AND basehost = '$ip'");
if (mysql_num_rows($sql)>0){ mysql_query ("update ".$t1." set hit = hit + 1 where date = '$date' "); mysql_query ("update ".$t2." set total = total + 1 where date = '$date' AND basehost='$ip' ");
}
else{
mysql_query ("insert into ".$t2." values ('$date', '$ip','$host','1');"); mysql_query ("update ".$t1." set hit = hit + 1, host = host + 1 where date = '$date' ");
countr();
hars();
browser();
os();
del();
update();
updatop();
};
mysql_close();
что по советуете?