更新MySQL查询超时

时间:2014-08-19 15:57:05

标签: mysql

我有两张桌子

表A 区 纬度 经度

表B 区 纬度 长

我试图将tableb中的纬度和经度移动到tablea中的新列中。但是当我在一个列上运行以下查询时,它会在5或6分钟后超时。

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

如何合并这些表?

3 个答案:

答案 0 :(得分:1)

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

同时为两个表上的区域列编制索引。

答案 1 :(得分:0)

为什么你不这样做:

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

答案 2 :(得分:0)

tableb上,创建一个涵盖zoneLat的索引:

ALTER TABLE `tableb` ADD INDEX ( `zone`, `Lat` ) ;

这应该可以大大加快查询的效果。