【发布时间】:2012-06-15 09:07:04
【问题描述】:
我有大约 70 000 行的表格。我需要查找、更改和保存 6000 行(我必须经常这样做,一周几次)。目前,我正在这样做,并且需要 2 多分钟才能完成:(有什么建议吗?:()
$query = mysql_query("SELECT meta_value FROM my_table WHERE meta_key = 'key' AND meta_value LIKE '%something%'")or die(mysql_error());
$new = "soemthing something";
while($row = mysql_fetch_array($query)){
$old = unserialize($row['meta_value']);
$new_meta_r = str_replace($old['color'],$new,$old);
$new_meta = serialize($new_meta_r);
$update_meta = mysql_query("UPDATE my_table SET meta_value = '$new_meta' WHERE meta_key = 'key' AND meta_value LIKE '%something%'")or die(mysql_error());
}
【问题讨论】:
-
您是否尝试将第一个查询中的 pkey 存储在一个数组中,然后使用 IN() 子句而不是 LIKE 进行更新?
-
考虑使用 MongoDB,而不是 SQL 来处理如此大量的数据
-
70 000 行数据量并不大。
-
@redskins 如果您认为 70k 行是“大量数据”,那么您不应该在这里发表评论。
-
@redskins80:如果每秒添加 70,00 行,那么我建议“这是大量数据”