我有这样的查询
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是索引。为什么第一个查询需要很长时间才能执行?如何加快速度?
答案 0 :(得分:0)
索引允许数据库应用程序快速查找数据;没有阅读整个表格。
第二个查询应该只是计数所以它不是读表。但是第一个查询应该是提交列的总和。所以它是读表。
首先查询应该很慢。