更新MySQL查询超时

更新MySQL查询超时,mysql,Mysql,我有两张桌子 表 区 纬度 经度 表B 区 拉特 长的 我试图将表B中的纬度和经度移动到表A中的新列中。但是,当我仅对一列运行下面的查询时,它会在5或6分钟后超时 UPDATE tablea SET latitude=(SELECT Lat FROM tableb WHERE tableb.zone=tablea.zone) 如何合并这些表?为什么不这样做: UPDATE tablea , tableb SET tablea.latitude = tableb.Lat WHERE tablea

我有两张桌子

表 区 纬度 经度

表B 区 拉特 长的

我试图将表B中的纬度和经度移动到表A中的新列中。但是,当我仅对一列运行下面的查询时,它会在5或6分钟后超时

UPDATE tablea SET latitude=(SELECT Lat FROM tableb WHERE tableb.zone=tablea.zone)

如何合并这些表?

为什么不这样做:

UPDATE tablea , tableb
SET tablea.latitude = tableb.Lat
WHERE tablea.zone= tableb.zone;

表B
上,创建一个涵盖
区域
纬度
的索引:

ALTER TABLE `tableb` ADD INDEX ( `zone`, `Lat` ) ;
这将大大提高查询的性能

UPDATE tablea JOIN table b 
ON tablea.zone=tableb.zone
SET tablea.latitude=tableb.lat

还要为两个表上的区域列编制索引。

表是否编制了正确的索引?不,您对上述结构有何建议?这也已超时更改表
表B
添加索引(
区域
);这也超时了,因为tablea中有120万,tableb中有200k重新导入了tableb,索引位于区域上,并在2分钟后运行