我有一个包含大约50,000条记录的数据库表。我正在运行一个用PHP编写的脚本,它将连接到我的数据库并更新每条记录。然而,这需要一段难以想象的长时间才能完成(我通过浏览器运行脚本并且它超时。当我尝试在本地数据库上运行它时,它运行了40多分钟但仍然没有完成)。 / p>
我得到了什么:
每个条目都有 ID ,用户名和 JSON blob 的表格。
Json blob:
{
"user": {
"Country": {
"US": {
"item": {
"property1": "value1",
"propertyBool": true,
"property2": "value2"
}
}
},
"Subscription": {
"subscribed": false
}
}
}
我需要做什么:
我需要解析JSON blob并在Country
属性下添加更多国家/地区(新国家/地区将具有与当前(美国)相同的结构,但值不同。) item
下的属性对于每个用户都是不同的,我需要为每个用户单独解析JSON。
最后,我希望我的JSON blob结构看起来像这样:
{
"user": {
"Country": {
"US": {
"item": {
"property1": "value1",
"propertyBool": true,
"property2": "value2"
}
},
"CA": {
"item": {
"property1": "otherValue",
"propertyBool": true,
"property2": "yetAnotherValue"
}
}
},
"Subscription": {
"subscribed": false
}
}
}
这是我在PHP脚本中运行的代码来更新它:
<?php
db_connect();
/*Get each user from the DB*/
$qry_users = mysql_query("SELECT * FROM users WHERE 1 = 1");
/*Loop through each entry in DB*/
while($row = mysql_fetch_assoc($qry_users)){
/*Parsing the blob*/
$user = json_decode($row['user']);
$jsonAddition = /*parsing JSON here for the new bit of JSON that will be added in*/
/*Adding the new Country to our current JSON blob*/
$user->Country->CA = $jsonAddition;
/*encoding JSON for adding it to DB*/
$user = json_encode($user);
/*Updating the current entry in the loop with the new JSON blob*/
mysql_query("UPDATE users SET user = '$user' where userId = '".$row['userId']."' ");
}
?>
有谁知道为什么这需要很长时间才能执行?有没有办法加快速度?