复制并更新 10000 MySQL 行/CPU 使用率


Copy and update 10000 MySQL rows / CPU usage

我有一个PHP脚本:

  • 将新行从表"new"复制到"活动",并删除"new"中的现有行。
  • 更新现有数据并删除"new"中的数据,如果"活动"中已经有一行具有相同id_measurement

我目前的解决方案使用Laravel Eloquent。问题是MySQL CPU使用率非常高(Mac上为90-100%),每次超过10000行。有没有更快的方法来做到这一点?也许只是使用 SQL?

编辑:现在一切正常,期待更新部分:

        UPDATE foo_new as new
        JOIN foo_active as active
        ON active.id_bar = new.id_bar
        SET active.blah=new.blah,
            active.time_left=new.time_left

它仍然非常慢,并且使用了很多CPU。

编辑 2:解决方案是索引。:)

为什么要把它放在应用层? 使用 MySQL
的强大功能删除和更新表我做过类似的事情使用它

1) 使用连接使用表 2 的新值更新表 1

UPDATE tab1
INNER JOIN tab2 ON (tab1.DnameId = tab2.DNDOMAIN_ID)
SET 
tab1.col = tab2.col;

2) 删除 - 删除表 1 中不在表 2 中的所有行

delete from   tab1 where tab1 .id not in (
select  id from tab2
)