select * from table_a a where a.num in (select b.num from table_b b);
表a与表b在两个不同的数据库中,如果要使用上面的语句必须通过dblink建立两个数据库的连接,但现在不能用dblink,我的方法是先将a,b两个表的数据分别从其各自的数据库中查出写入到文本中,再用java程序作比较对两具文本的数据比较,但数据量太大(200万以上),请问大家有什么好的方法。
表a与表b在两个不同的数据库中,如果要使用上面的语句必须通过dblink建立两个数据库的连接,但现在不能用dblink,我的方法是先将a,b两个表的数据分别从其各自的数据库中查出写入到文本中,再用java程序作比较对两具文本的数据比较,但数据量太大(200万以上),请问大家有什么好的方法。
如果实在是你的机器不行,那么可以这样做。A表 以 a.num排序输出到文件。 B表以 B.num排序,取出b.num到文件。1 取 10000 条b表文件 放入hashmap
2 循环A表文件,获取数据。
2.1 再HashMap中定位该数据。
2.2 若定位失败。
2.2.1 若 a.num>b.num(最大值)
2.2.1.1 取b表数据,取出 b.num >=a.num 的10000条数据 放入hashMap. 重新回到2.1
2.2.2 重新回到2 的循环