更新MySQL查询超时
我有两张桌子 表 区 纬度 经度 表B 区 拉特 长的 我试图将表B中的纬度和经度移动到表A中的新列中。但是,当我仅对一列运行下面的查询时,它会在5或6分钟后超时更新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
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分钟后运行