使用sum缓慢更新mysql

时间:2015-07-29 08:34:49

标签: mysql

我有这样的查询

UPDATE linksupload as lu SET lu.progress = (SELECT SUM(l.submitted)
           FROM links l
            WHERE l.upload_id = lu.id)

执行需要10秒。 linksupload包含10行,链接包含700k行。

查询:

 UPDATE linksupload as lu SET lu.progress = (SELECT count(*)
               FROM links l
                WHERE l.upload_id = lu.id)

需要0,0003 sek才能执行。从第一个查询中选择与组相加的快速。 upload_id和id是索引。为什么第一个查询需要很长时间才能执行?如何加快速度?

1 个答案:

答案 0 :(得分:0)

索引允许数据库应用程序快速查找数据;没有阅读整个表格。

第二个查询应该只是计数所以它不是读表。但是第一个查询应该是提交列的总和。所以它是读表。

首先查询应该很慢。