MySQL-Update表需要很长时间

时间:2015-06-04 06:49:52

标签: mysql

我有一个约110k行和20列没有索引的塔。我写了一个查询来更新此表JOIN的9列与另一个具有许多索引的表。并且查询需要永远运行。我真的不知道为什么。这是我的疑问:

UPDATE tonghop a JOIN testdone b 
ON a.stt = b.stt 
SET a.source = b.source, a.pid=b.pid, a.tenbenhnhan = b.fullname, 
a.orderdoctor=b.orderdoctor, a.specialty = b.specialty, a.rdate = b.rdate, 
a.icd_code = b.icd_code, a.servicegroup = b.servicegroup;

真的很感激,如果有人可以提供帮助

2 个答案:

答案 0 :(得分:2)

您正在执行的查询没有WHERE子句,这意味着它将在所有110K记录上执行,并且您的连接列“stt”必须在两个表上编制索引,以便获得更好的性能。 / p>

您应该在“stt”列上添加索引。

答案 1 :(得分:1)

如果两列都没有索引,JOINS会变慢。 您最有可能强制MySql读取110k记录中的每一个以检查它们是否匹配。 使用索引,MySql知道这些记录的位置,并且可以快速找到它们。

尝试在tonghop.stt上添加索引。

您还可以尝试在查询上运行EXPLAIN,看看它是否确实进行了所谓的“全表扫描”。

https://dev.mysql.com/doc/refman/5.6/en/using-explain.html