编写内部连接函数的更快方法

ubof19bj  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(220)

mysql:我试图从另一个表向我的表中添加一些数据,它们的id是相同的。

update sf_leads t1
inner join temp_geninfo t2 
on t1.application_id = t2.application_id
set t1.org_city = t2.org_city;

但是,每个表都有92000个值,这个查询花了将近一个小时才完成。有没有更快的方法,或者我只是需要等待?

vmpqdwk3

vmpqdwk31#

对于此查询:

update sf_leads t1 inner join
       temp_geninfo t2 
       on t1.application_id = t2.application_id
    set t1.org_city = t2.org_city;

你想要索引吗 temp_geninfo(application_id, org_city) :

create index idx_temp_geninfo_application_id_org_city on temp_geninfo(application_id, org_city);

您还可能希望通过运行以下命令来检查同一行上没有多个更新:

select application_id, count(*)
from temp_geninfo
group by application_id
having count(*) > 1;

如果这返回任何行,那么您可能会遇到 join 乘以正在更新的行数。

相关问题