У меня есть большой сайт для загрузки, у меня есть код, который обновляет каждую загрузку, чтобы отслеживать, сколько уникальных человек скачивают каждый файл и сколько всего человек просматривает файл.Mysql Counter code optimize
Однако код работает нормально, но когда у меня много трафика, код замедляет работу сайта, разрешает сервер mysql использовать много ресурсов. Оптимизирован ли этот код?
Я был бы признателен за кого-то, чтобы сделать это для меня, будьте внутренней соединяющую их и т.д. Благодаря
<?php
#Gathers the client info
$agent = $_SERVER['HTTP_USER_AGENT'];
$brows = explode(" ",$agent);
$ubr = "$brows[0]";
$exptime = time() + 200;
$var = time();
$uip = user_ip();
$del = mysql_query("DELETE FROM log_hits WHERE exptime < '".$var."'");
$hits = mysql_fetch_array(mysql_query("SELECT * FROM user_downloads WHERE id='".$file_id."'"));
#Process unique download count
$u_check = DB::FetchArray(DB::Query("SELECT COUNT(*) FROM log_hits where browser='".$ubr."' and uip='".$uip."' and file_id='".$file_id."'"));
if($file_check[0]=="0")
{
$res3 = DB::Query("INSERT INTO log_hits SET browser='".$ubr."', uip='".$uip."', exptime='".$exptime."', file_id='".$file_id."'");
$unique = $hits[day_unique] + 1;
}else
{
$unique = $hits[day_unique];
}
#update regular hits to the file,
$week = $hits[weekly] + 1;
$hour = $hits[this_hour] + 1;
$todayx = $hits[today_hits] + 1;
$total = $hits[total] + 1;
$month = $hits[month] + 1;
$res3 = DB::Query("UPDATE `user_downloads` SET `day_unique`='{$unique}', `weekly`='{$week}', `this_hour`='{$hour}', `month`='{$month}', `total`='{$total}' , `today_hits`='{$todayx}' WHERE `id`='".$file_id."'") or die(mysql_error());
?>
Пожалуйста, избегайте данных из '$ _SERVER ['HTTP_USER_AGENT']' и используйте кавычки для ваших индексов массива: '$ this ['day_unique']'! – ComFreek
О, ладно, я тебя поймаю. что-нибудь еще можно сделать для лучшей производительности? –
Просто используйте [mysql_real_escape_string() '] (http://php.net/mysql-real-escape-string):' $ agent = mysql_real_escape_string ($ _ SERVER ['HTTP_USER_AGENT']); ' – ComFreek