MySQL更新表需要很长时间

MySQL更新表需要很长时间,mysql,Mysql,我有一个约110k行和20列的talbe,没有索引。我编写了一个查询,用另一个具有许多索引的表来更新这个表的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 =

我有一个约110k行和20列的talbe,没有索引。我编写了一个查询,用另一个具有许多索引的表来更新这个表的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;

非常感谢如果有人能够在两列上都没有索引的情况下提供帮助,那么连接将非常缓慢。 您很可能会强制MySql读取110k记录中的每一条,以检查它们是否匹配。 通过索引,MySql知道这些记录在哪里,并且可以快速找到它们

尝试在tonghop.stt上添加索引

您还可以尝试对查询运行解释,看看它是否确实执行所谓的“完整表扫描”


如果两列上都没有索引,则联接速度会很慢。 您很可能会强制MySql读取110k记录中的每一条,以检查它们是否匹配。 通过索引,MySql知道这些记录在哪里,并且可以快速找到它们

尝试在tonghop.stt上添加索引

您还可以尝试对查询运行解释,看看它是否确实执行所谓的“完整表扫描”


如果两列上都没有索引,则联接速度会很慢。 您很可能会强制MySql读取110k记录中的每一条,以检查它们是否匹配。 通过索引,MySql知道这些记录在哪里,并且可以快速找到它们

尝试在tonghop.stt上添加索引

您还可以尝试对查询运行解释,看看它是否确实执行所谓的“完整表扫描”


如果两列上都没有索引,则联接速度会很慢。 您很可能会强制MySql读取110k记录中的每一条,以检查它们是否匹配。 通过索引,MySql知道这些记录在哪里,并且可以快速找到它们

尝试在tonghop.stt上添加索引

您还可以尝试对查询运行解释,看看它是否确实执行所谓的“完整表扫描”


您正在执行的查询没有WHERE子句,这意味着它将在所有110K记录上执行,并且您的联接列“stt”必须在两个表上都建立索引,以获得更好的性能


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

您正在执行的查询没有WHERE子句,这意味着它将在所有110K记录上执行,并且您的联接列“stt”必须在两个表上都建立索引,以获得更好的性能


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

您正在执行的查询没有WHERE子句,这意味着它将在所有110K记录上执行,并且您的联接列“stt”必须在两个表上都建立索引,以获得更好的性能


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

您正在执行的查询没有WHERE子句,这意味着它将在所有110K记录上执行,并且您的联接列“stt”必须在两个表上都建立索引,以获得更好的性能


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

只是一个注释:更新时解释仅为MySQL 5.6/MariaDB 10,但更新可以重写为选择在计划方面通常几乎相等的内容。只是一个注释:更新时解释仅为MySQL 5.6/MariaDB 10,但是更新可以被重写,以选择在计划方面大体相当的只是一个注释:更新上的解释仅为MySQL 5.6/MariaDB 10东西,但更新可以被重写,以选择在计划方面大体相当的只是一个注释:更新上的解释仅为MySQL 5.6/MariaDB 10东西,但更新可以重写,以选择在计划方面几乎相同的更新