查询用数百万行填充MySQL数据库

时间:2013-05-11 16:56:25

标签: mysql

我有两张桌子。第一个名为“权重”,包含大约250,000行:

mid / weight

1/3

2/12

3/7

第二个被称为“收件人”,大约有200万行,就是这样:

mid / weight

1 / -

1 / -

1 / -

2 / -

我正在尝试使用表格“权重”中的“权重”信息填充它,我正在使用此查询:

UPDATE recipient A
SET weight =
  (SELECT weight
   FROM recipient B
   WHERE B.mid = A.mid)

查询似乎适用于前几行,但似乎200万太多了。我在我的Mac上运行MAMP。你会怎么建议我做的?

1 个答案:

答案 0 :(得分:2)

我怀疑你的桌子上没有定义索引。

UPDATE  recipient A
        INNER JOIN weight B
            ON B.mid = A.mid
SET     a.weight = b.weight

要获得更快的效果,请在其上设置weight.mid主键和参考recipient.mid