我在oracle数据库中有20万个数据,在Mysql数据库中有30万个数据,列数相同。 我想插入或更新mysql dp与oracle数据库中的数据比较。
我正在尝试使用JDBC,spring boot jpa,但我必须循环通过两个数据库中的记录,以检查特定的数据是否已经存在,或者与oracle数据库中的数据相比,现有数据是否有任何变化,这是非常耗时的,也是不专业的。
是否有任何解决方案或比较技术可以减少时间和更好的性能?
MySql表的哪些列足够好地标识行,以决定Oracle表是否包含重复行?
您几乎肯定有足够的RAM从MySql表中的所有行中读取这些列到HashSet集合中。
然后逐个读取Oracle表中的行,并在哈希集中查找它们(这很快)。 如果一行不在HashSet中,将其插入MySQL中。 如果确实匹配,请执行应用程序所需的任何操作。
或者,查看如何使用MySQL的insert.。。ON DUPLICATE KEY UPDATE.。。
查询模式。 如果你的索引是正确的,那也可以很快。