前回はアクセス解析が重くなってきたなー、と感じたら手動でphpMyAdminからゴミ箱アイコンで osaka_ua テーブルのデータをTruncateする、といった事を行ってたんですが、それすらも面倒になってきたので思い切った施策をしました。
要は osaka_ua テーブルにデータが追加・変更されなければ重くならないので、最初から追加させないようにしていたわけです。アクセス解析で知りたいのは、主にカウント数とリンク元のURLくらいなので、ユーザーエージェント用のテーブルはまぁ空でもいいか、って感じですので。
変更点は下記になります。
初期設定から変えてなければ、実テーブル名は osaka_ua なんですが、ソース内では定数指定してあります(config.phpの140行目を参照)。それらがINSERTやUPDATEされてる所をコメント化してます。
変更部分が太字になります(まぁ最初と最後を /* と */ で囲んでるだけですね)。
//writelog.phpの390行あたり
//UA追加
//2014/02/20 takehana_del_s
/*
$sql = "INSERT INTO ".constant("DB_TABLE_UA")." (ua_name,os,os_v,brow,brow_v) values (".$ua.",'".$ua_list["os"]."','".$ua_list["os_v"]."','".$ua_list["browser"]."','".$ua_list["browser_v"]."');";
$res = $db->query($sql);
WriteClass::check_err($res);
*/
//2014/02/20 takehana_del_e
//control_panel フォルダ内 load_updata_ua.php の9行目あたり /*=========================================*/ /* UA更新 */ /*=========================================*/ $updata_count = 0; //2014/02/20 takehana_del_s /* $sql = array(); $sql["from"] = constant("DB_TABLE_UA"); $res = $db->query(mk_sql($sql)); check_err($res); while ($row = $res->fetchRow(DB_FETCHMODE_ASSOC)){ if(!$row["ua_name"]) continue; $ua = array(); list($ua["browser"], $ua["browser_v"], $ua["os"], $ua["os_v"]) = getuseragent($row["ua_name"], "../"); if($row["os"] === $ua["os"] && $row["os_v"] === $ua["os_v"] && $row["brow"] === $ua["browser"] && $row["brow_v"] === $ua["browser_v"]){ continue; } $sql = "UPDATE ".constant("DB_TABLE_UA")." SET ". ($row["os"] === $ua["os"] ? '' : "os = '".$ua["os"]."',"). ($row["os_v"] === $ua["os_v"] ? '' : "os_v = '".$ua["os_v"]."',"). ($row["brow"] === $ua["browser"] ? '' : "brow = '".$ua["browser"]."',"). ($row["brow_v"] === $ua["browser_v"] ? '' : "brow_v = '".$ua["browser_v"]."',"); $sql = substr($sql, 0, -1)." WHERE ua_id = ".$row["ua_id"]." LIMIT 1;"; $sql = @mb_convert_encoding($sql, "UTF-8", "ASCII,JIS,UTF-8,EUC-JP,SJIS"); $res2 = $db->query($sql); check_err($res2); $row["os"] = $ua["os"]; $row["os_v"] = $ua["os_v"]; $row["brow"] = $ua["browser"]; $row["brow_v"] = $ua["browser_v"]; $form_val[] = $row; $updata_count++; } $res->free(); */ //2014/02/20 takehana_del_e
とりあえずテーブル osaka_ua にはデータが追加されなくなったので、けっこう処理が軽くなったのではないでしょうか。これで自分的に望んだ挙動になったので、このまま運用してみます。
コメント