ホームページ  >  記事  >  バックエンド開発  >  アクセス数が多い関数は正しく実装できません。2 つの PHP コードのソリューションを最適化するのを手伝ってください。

アクセス数が多い関数は正しく実装できません。2 つの PHP コードのソリューションを最適化するのを手伝ってください。

WBOY
WBOYオリジナル
2016-06-13 13:37:16793ブラウズ

関数のアクセス数が多い場合、正しく実装できません。2 つの PHP コード
最初の段落:

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?php
@session_start();
date_default_timezone_set('Asia/Shanghai');
$link_id =@ mysql_connect('localhost', 'root', 'password');
if ($link_id)
 {
     mysql_select_db('database');
     mysql_query("set names 'utf8'"); //select 数据库之后加多这一句
} 
else
{
    echo "数据库连接错误!";
}
//var_dump($current);
$Datetime=date("Y-m-d G:i:s");//获取注册时间,也就是数据写入到用户表的时间
$bijiao="select max(current) from online";
$max=@mysql_query($bijiao,$link_id);
$most= intval( @mysql_result($max,0) );
$current= intval($_SESSION['current']);
$query="insert into online(current,mostcount,time)  values('".$current."','".$most."','$Datetime')";
$result=mysql_query($query);
echo $most;
?>


の最適化にご協力ください。 2 番目の段落:
PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?php
@session_start();
date_default_timezone_set('Asia/Shanghai');
$link_id =@ mysql_connect('localhost', 'root', 'password');
if ($link_id)
 {
     mysql_select_db('database');
     mysql_query("set names 'utf8'"); //select 数据库之后加多这一句
} 
else
{
    echo "数据库连接错误!";
}
$bijiao="select max(mostcount) from online";
$max=@mysql_query($bijiao,$link_id);
$most= intval( @mysql_result($max,0) );
$time="select time from online where mostcount='$most'";
$time=@mysql_query($time,$link_id);
$time=@mysql_result($time,0);
$already="select max(mostcount) from record";
$already=@mysql_query($already,$link_id);
$already= intval( @mysql_result($already,0) );
if($most>$already)
{
    $query="insert into record(mostcount,time)  values('".$most."','$time')";
    $result=@mysql_query($query);
}
?>



------解決策---------------- ----
最初の段落のアルゴリズムは 2 番目のアルゴリズムとほぼ同じです
2 番目の段落のアルゴリズムは少しばかげています

インデックスなしで max 演算を実行するとcurrent または mostcount、間違いなく多くの時間がかかります
------解決策---------
データベースに current と mostcount を追加します。インデックスを付けるだけです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。