Python 比较大型数据库

Python 比较大型数据库,python,mysql,database,Python,Mysql,Database,假设我们有两个表,表A和表B,并且假设A和B都非常大:表A由500000行和20列组成,表B由1000000行和20列组成。此外,假设没有可用于行的唯一索引 问题:检查两个表之间重叠的最快方法是什么?我应该使用某种形式的散列吗?在几分钟内比较表格是否可行,如果不可行;需要多长时间?我猜仅仅比较A的每一行和B的每一行会花费大量的计算时间 谢谢 我认为最快的解决方案是在某个分布均匀的字段中的一个表上创建索引,即在该字段中很少有两条记录具有相同值的情况。然后,你可以在该字段上进行快速搜索 创建索引然后

假设我们有两个表,表A和表B,并且假设A和B都非常大:表A由500000行和20列组成,表B由1000000行和20列组成。此外,假设没有可用于行的唯一索引

问题:检查两个表之间重叠的最快方法是什么?我应该使用某种形式的散列吗?在几分钟内比较表格是否可行,如果不可行;需要多长时间?我猜仅仅比较A的每一行和B的每一行会花费大量的计算时间


谢谢

我认为最快的解决方案是在某个分布均匀的字段中的一个表上创建索引,即在该字段中很少有两条记录具有相同值的情况。然后,你可以在该字段上进行快速搜索

创建索引然后运行比较几乎肯定比不使用索引运行比较要快

具体需要多长时间将取决于字段的大小、服务器的速度等。但对于一个合适的索引,几分钟的时间并不是一个不合理的期望


如果出于某种原因不需要索引,请在完成后将其删除。

您可以使用sql表,只需使用以下命令比较值即可。这个命令对于少于一百万行的表非常有效

SELECT * FROM a INTERSECT SELECT * FROM b;

MySQL还是SQL Server?我认为这个问题更适合于感谢您的回答!你认为买一台macbook需要多长时间?:我不知道。与试图建立一个数学模型来进行评估相比,尝试和观察的工作量要小得多。更可靠的是:一盎司的实验抵得上一磅的理论。如果您没有完全填充的表,我建议您创建虚拟数据,编写一个简短的程序或查询,只使用a、b、c等数据类型填充表,或任何适合数据类型的内容。我问了另一个与此问题相关的问题。既然你对这个问题有这样一个优雅的解决方案,你介意再看看这个问题吗?