加入多个数据库mysql

时间:2017-06-21 13:19:28

标签: mysql

我在两个不同的数据库中有大约2百万条记录,每个数据库有100万条记录。我想将两个表相互连接以找到差异,但由于数据大小,每次执行操作时mysql都会抛出超时错误。这是我的问题:

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

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

尝试使用MySQL子查询:

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

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

答案 1 :(得分:0)

您正在使用具有其他ID的所有db2记录加入每个db1记录。这就产生了大约一万亿行。

请尝试以下方法:

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

select * from db2.table1 where id not in (select id from db1.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);