在MySQL服务器上,我在一个名为weather的表中有1400万行和20列,在一个名为incident的表中有1900行和15列。我试图将weather中的活动列设置为1,其中weather date列位于事件表的开始和结束日期列之间,weather location列等于Event location列。我有以下问题,我不确定这是否是最有效的方法。它目前已经在AWS RDS db上运行了一个小时。m5。4XL(16个vCPU和64 GB RAM)。根据AWS控制台,它只使用了8%的CPU。
UPDATE dev.weather, dev.incident
SET weather.active = 1
WHERE weather.location = incident.location AND weather.DATE BETWEEN dev.incident.start_date AND dev.incident.end_date
有没有更好的方法来实现这一点?