为什么 MySQL 更新查询很慢?

why is MySQL update query is slow?

Update tbldupaudit_workingitems as w inner join
tbldupaudit_auditstatus_temp t on 
Resolved_Status = 0 and
concat(w.Claim_ID, w.DIN) = concat(t.Claim_ID, t.DIN)
SET 
w.Status = t.Status,
w.Audit_Remarks=t.Audit_Remarks,
w.Resolved_By=t.Resolved_By,
w.Resolved_Date=t.Resolved_Date,
w.Resolved_Status = 1;

tbldupaudit_workingitems:行 - 大约 40 万,并且每天都在增加。 tbldupaudit_auditstatus_temp:行数 - 大约 25,000 行,可能会增加或减少。

处理:将 csv 文件加载到 tbldupaudit_auditstatus_temp table 并更新 tbldupaudit_workingitems 如果有任何根据 Claim_ID &DIN 匹配的记录。

这需要很长时间才能执行,但如果查询运行超过 1:45 小时,则连接将丢失。

显示创建表:

有什么可以提高查询性能的,请指教。 请让我知道是否需要更多详细信息来帮助我,但请不要用负号提出我的问题,因为我是 Stakeoverflow/matter 的新手,事实上我是 MySQL(数据库编码)的新手。

AND concat(w.Claim_ID, w.DIN) = concat(t.Claim_ID, t.DIN)

无法优化。

可能这会很好用:

AND w.Claim_ID = t.Claim_ID
AND w.DIN = t.DIN 

但它至少需要一个表的复合索引:

INDEX(Clarim_ID, DIN)