gpt4 book ai didi

mysql - 添加和更新列/使用附加行创建新表

转载 作者:可可西里 更新时间:2023-11-01 08:48:32 27 4
gpt4 key购买 nike

我有两个巨大的表,A 表有 1000 万行,B 表有 250 万行。两个表都有一个共同的字段 id。表 A 有 ~250 列,表 B 有 5 列。表 B 中的所有 ID 都存在于表 A 中。我想将表 A 中的字段(日期格式)添加到表 B。我有两个选项,并且都需要很多时间来运行。我想知道哪个会更有效率。

选项 1:
改变表 B 添加列字段日期;
更新 B 加入 A using(id) set a.field=b.field;

选项 2:
create table C as select a.*,b.field from B join A using(id);

id 在两个表中都有索引,ENGINE 是 MyISAM。

哪个选项会更快?

我认为是 2,因为在选项 1 中,添加一列需要时间,然后在更新时,状态 copy to tmp table 需要花费大量时间。在选项 1 中,它直接从“发送数据”状态开始。我说得对吗?

另外,我可以用任何其他更快的方式做到这一点吗?

最佳答案

如果您只想选择信息,您可以创建一个 View 以将所有数据放在一起

CREATE VIEW 'my_view' as select * from B join A on B.id = A.id;

所以你可以运行

select field,any_field from my_view where any_condition;

绝对不推荐数据库中有重复的数据

希望对你有帮助。因为这不是您的任何选择。


你也可以自己运行查询

 select  field,any_field from B join A on B.id = A.id where any_condition;

关于mysql - 添加和更新列/使用附加行创建新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20971832/

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