比较大型数据库

时间:2018-09-06 16:45:11

标签: python mysql database

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

问题:检查两个表之间重叠的最快方法是什么?我应该使用某种形式的哈希吗?在几分钟之内(如果不是这样)比较表是否可行? 需要多长时间?我猜只是将A的每一行与B的每一行进行比较会花费很多计算时间?

谢谢!

2 个答案:

答案 0 :(得分:1)

我怀疑最快的解决方案是在分布良好的某个字段的表之一上创建索引,即在该字段中很少有两个记录具有相同值的情况。然后,您可以对该字段的联接进行快速搜索。

几乎可以肯定,创建索引然后运行比较比没有索引进行比较要快。

确切需要多长时间取决于字段的大小,服务器的运行速度等。但是,由于索引不错,“几分钟”并不是一个不合理的期望。

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

答案 1 :(得分:0)

您可以使用sql表,并使用以下命令简单地比较这些值。对于少于一百万行的表,此命令非常有用。

SELECT * FROM a INTERSECT SELECT * FROM b;
相关问题