我使用了下面的代码。 我是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));
}
答案 0 :(得分:-2)
如果您在localhost上尝试此操作,则正常。 CPU使用率的最大部分导致mysql进程(具体更新表中的值)。
有很多种可能性。 CPU性能低,MySQL设置不良等等