Database 什么';使用Perl比较两个不同数据库中大约700000行的速度更快吗?

Database 什么';使用Perl比较两个不同数据库中大约700000行的速度更快吗?,database,perl,Database,Perl,我使用Perl使用DBI连接到两个不同的数据库(MySQL和Sybase),每个数据库上大约有700000条记录,我需要它们是相同的(很可能每周左右会有一些不同的记录),第一次这样做只是复制表的问题,但这需要定期进行(至少每周一次),并且每次都简单地删除表并复制所有内容不是一个好的解决方案,因此我想知道:使用Perl比较两个不同数据库中大约700000行的更快方法是什么? 注意:这些表有5个字段(所有字段都是字符类型,包括主键)将每个表全部加载到Perl中,然后在两个列表上运行。最后,您将得到一

我使用Perl使用DBI连接到两个不同的数据库(MySQL和Sybase),每个数据库上大约有700000条记录,我需要它们是相同的(很可能每周左右会有一些不同的记录),第一次这样做只是复制表的问题,但这需要定期进行(至少每周一次),并且每次都简单地删除表并复制所有内容不是一个好的解决方案,因此我想知道:使用Perl比较两个不同数据库中大约700000行的更快方法是什么?


注意:这些表有5个字段(所有字段都是字符类型,包括主键)

将每个表全部加载到Perl中,然后在两个列表上运行。最后,您将得到一个很好的要删除的行列表和要插入的行列表。一些行可能会被删除并重新插入(如果这些行中挂有外键,则需要执行更新,而不是删除/插入)

700000行在现代机器上不是很多数据,也不是很多内存


如果只需要存在行(即行存在或不存在,而不是实际的行更改),您只需对键进行区分,然后从那里获取所需的行。

如果非键字段很大,您可以下载键和其他字段的sha1散列,并如上所述进行比较。比较时,浮动可能会很痛苦-您可能需要限制它们的精度。(呵呵,700K没什么,2.4亿行可能很有趣)