使用Perl比较来自2个不同数据库的大约700,000行的更快方法是什么?

时间:2012-02-22 14:33:34

标签: database perl

我正在使用Perl使用DBI连接到2个不同的数据库(MySQL和Sybase),每个记录大约有700,000个记录,我需要它们是相同的(很可能每周都会有几个不同的记录) ),第一次这样做只是复制表的问题,但这需要定期(至少每周一次)完成,只需丢弃表并每次都复制一遍不是一个好的解决方案,所以我想知道:使用Perl比较来自2个不同数据库的700,000行的更快方法是什么?

注意:表格有5个字段(所有字段类型包括主键)

1 个答案:

答案 0 :(得分:4)

将每个表(已排序)加载到Perl中,然后在两个列表上运行Algorithm:Diff。最后,您将获得要删除的行和要插入的行的良好列表。某些行可能会被删除并重新插入(如果您将外键挂在这些行上,则需要进行更新而不是删除/插入)。

700,000行不是现代机器上的大量数据,也不是很多内存。

如果您只需要存在行(即行存在或者不存在而不是实际的行更改),您可以在键上执行diff,然后从那里获取所需的行。