连接多个数据库mysql

连接多个数据库mysql,mysql,Mysql,我在两个不同的数据库中有大约200万条记录,每个数据库有100万条。我希望将这两个表彼此连接起来以找出差异,但由于数据大小的原因,每次执行操作时mysql都会抛出一个超时错误。这是我的疑问: SELECT id FROM db1.table1 AS a INNER JOIN db2.table1 AS b ON ( b.Id != a.Id ) 任何帮助都将不胜感激 尝试使用MySQL子查询: SELECT id FROM db1.table1 WHERE id NOT IN (SELECT

我在两个不同的数据库中有大约200万条记录,每个数据库有100万条。我希望将这两个表彼此连接起来以找出差异,但由于数据大小的原因,每次执行操作时mysql都会抛出一个超时错误。这是我的疑问:

SELECT id FROM db1.table1 AS a INNER JOIN db2.table1 AS b ON ( b.Id != a.Id )

任何帮助都将不胜感激

尝试使用MySQL子查询:

SELECT id FROM db1.table1 WHERE id NOT IN (SELECT id FROM db2.table1);

上述查询由两部分组成。括号内的第一部分从db2.table1中选择字段id,没有任何限制。这个结果将在外部的表中用于从db1.table1中删除不需要的记录。

您将把每个db1记录与具有另一个ID的所有db2记录连接起来。因此,大约生成了1万亿行

请尝试以下操作:

select * from db1.table1 where id not in (select id from db2.table1);

或组合:

select 'db1' as db, * from db1.table1 where id not in (select id from db2.table1)
union all
select 'db2' as db, * from db2.table1 where id not in (select id from db1.table1);

ID完全相同,但第二个表中只有一些不存在的行是的,但是假设您在db1中有一条ID=1的记录,您通过
b.ID!=a、 Id
。然后加入db2中的所有记录,ID=1的记录除外。仅第一条记录就有大约一百万行。然后再花一百万买第二个身份证等等。谢谢。这真的很有帮助。简短而漂亮的回答:)
select 'db1' as db, * from db1.table1 where id not in (select id from db2.table1)
union all
select 'db2' as db, * from db2.table1 where id not in (select id from db1.table1);