改进`Update`子查询性能?

时间:2012-06-11 13:25:49

标签: mysql sql database

我有这样的查询:

UPDATE table1 SET status = 'ANSWERED' WHERE table1.number IN (select table2.number from table2)

如果status

中已存在table1.number,则应将table2.number更新为ANSWERED

这是永远的,仍然悬挂..

table1表中,300,000行。

table2表中,有24,000行。

table1.numbertable2.number是唯一的数字。

如何提高绩效?

1 个答案:

答案 0 :(得分:3)

在table1.number和table2.number字段上创建索引,并使用以下查询。

UPDATE table1 
       INNER JOIN table2 
               ON table1.number = table2.number 
SET    table1.status = 'ANSWERED'