gpt4 book ai didi

mysql - 将前n行的ID从一个表复制到另一个表

转载 作者:行者123 更新时间:2023-11-29 07:08:31 24 4
gpt4 key购买 nike

我有 2 张 table :

表1:

shareID |    shareName
__________________

1 shareA
2 shareB
3 shareC

表2:

shareID |    shareName
__________________

0 shareA
0 shareA
0 shareB
0 shareC

我需要将 shareID 从 table1 复制到 table2 以获得匹配的 shareName。

我有这个有效的查询

UPDATE table1, table2 SET table2.shareID=table1.shareID WHERE table2.shareName=table1.shareName

但问题是 table2 有大约 600K 行,table1 大约有 350 行。因此查询这个时间太长了。

最初我认为由于内存限制它不会工作,但是当我写这个问题时,查询完成了并且我有了我需要的东西。花了大约5分钟,也许更多。但我想知道是否有更好的方法来做到这一点?

谢谢

最佳答案

只需使用加入:

UPDATE table1 t1 JOIN
table2 t2
ON t2.shareName = t1.shareName
SET t2.shareId = t1.shareID ;

然后,添加索引:

create index idx_table1_shareName on table1(shareName);

实际上,我不确定哪个表更适合索引(我对查询中的表名称与问题中的名称不同感到困惑)。因此,在两个表上构建一个:

create index idx_table2_shareName on table2(shareName);

关于mysql - 将前n行的ID从一个表复制到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40706999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com