gpt4 book ai didi

mysql - 如何高效合并两个大的MySQL表?

转载 作者:行者123 更新时间:2023-11-29 03:45:18 25 4
gpt4 key购买 nike

这是我的问题。我有两张 MySQL 表,一张有 330 万条记录,一张有 70 万条记录。第二个表中的所有 700,000 条记录都存在于第一个表中,并且两个表有一个共同的列。我想从两个表中为所有 700,000 条记录选择 * 并将它们插入到新表中。我已经为两个共同的列创建了一个索引。这是我通常会做的事情

INSERT INTO MergedTable(FirstName TEXT,LastName TEXT,Address TEXT)SELECT FirstNameFromTable1,LastName,Address FROM Table1,Table2 WHERE FirstNameFromTable1 = FirstNameFromTable2

但表的大小导致此语句挂起,最终请求中断。关于如何更有效地执行此操作的任何想法?作为引用,这里是我用来制作两个有问题的表的命令。感谢您的帮助。

CREATE TABLE Table1 ( FirstNameFromTable1 varchar(300), LastName TEXT, index(FirstNameFromTable1) );
CREATE TABLE Table2 ( FirstNameFromTable2 varchar(300), Address TEXT, index(FirstNameFromTable2) );

最佳答案

分块:

insert into MergedTable (...)
select top 10000 ... from Table1,Table2
where FirstNameFromTable1=FirstNameFromTable2
and not exists (select * from MergedTable where FirstName=FirstNameFromTable1)

运行它直到 row_count() 为 0,显然您需要 MergedTable.FirstName 上的索引

关于mysql - 如何高效合并两个大的MySQL表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6636416/

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