比较数据库中两大数据的正确/最快方法

时间:2013-10-29 12:29:33

标签: sql database compare


我想比较两组大数据(2个表),每个数据包含大约10,000,000条记录:id和其他属性的哈希值。

如果左侧和右侧的id相同,但哈希值不同,我需要比较每个属性以查看哪个属性发生了变化。
实现这一目标的最佳方法是什么?

我已经尝试了DiffKit,我正在寻找更快的东西。

1 个答案:

答案 0 :(得分:0)

以下查询将为散列不同的每个id添加一行,并且只包含不同的列(其他所有内容都为NULL)

SELECT a.id
    , NULLIF(a.col1,b.col1) t1_col1
    , NULLIF(b.col1,a.col1) t2_col1
    , NULLIF(a.col2,b.col2) t1_col2
    , NULLIF(b.col2,a.col2) t2_col2
    […]
FROM table1 a INNER JOIN table2 b
ON a.id = b.id
AND a.hash <> b.hash

(id,hash)上的索引会使查询加快一点。