以下代码的CPU使用率非常高

时间:2015-07-15 21:43:11

标签: php mysql updates cpu-usage cpu-speed

我使用了下面的代码。 我是PHP和Mysql的新手......

我在循环中做错了什么。?

abc表有70562条记录,ip2表有3833421条记录..

有任何改进建议。?

$sql = "SELECT * FROM abc where ip_country IS NULL";

$query = mysqli_query($con, $sql) or die (mysqli_error($con));

while ($row = mysqli_fetch_array($query)) {
    $id = $row["subid"];
    $ip = $row["ip"];

    //Convert Ip to Number 
    $ipnumberconversion = ip2long($ip);

    //Select Ip From Ip Table
    $sql2 = "UPDATE abc as a ,
                    ip2 as b
            SET a.ip_state = b.REGION,
                a.ip_postalcode = b.ZIPCODE,
                a.ip_city = b.CITY, 
                a.ip_country = b.COUNTRY_NAME  
            WHERE a.subid = '$id' AND b.IP_FROM <= $ipnumberconversion AND b.IP_TO >= $ipnumberconversion";
    $query2 = mysqli_query($con, $sql2) or die (mysqli_error($con));
 }

1 个答案:

答案 0 :(得分:-2)

如果您在localhost上尝试此操作,则正常。 CPU使用率的最大部分导致mysql进程(具体更新表中的值)。

有很多种可能性。 CPU性能低,MySQL设置不良等等