将comlun压缩为唯一的较短值以进行数据行比较的任何方法

本文关键字:数据 比较 方法 任何 压缩 comlun 唯一 | 更新日期: 2023-09-27 18:28:54

我想让数据库更新更容易一点。

对于这种情况:需要通过PK将DB A和DB B中的所有列进行比较,以了解是否需要更新此行。

简单的方法是用分隔符连接所有列,然后进行比较。例如:

string row_A=column1+column2+.....column20;
string row_B=column1+column2+.....column20;
if(row_A!=row_B)
{...}

但我想知道有没有更好的方法,比如将这些列计算成一个唯一的值,比如hash之类的东西,然后我可以把这些值保存到表中。

uniqueValue_A=makeUniqueValue(column1+column2+.....column20);
uniqueValue_B=makeUniqueValue(column1+column2+.....column20);
if(uniqueValue_A!=uniqueValue_B)
{...}

然后我只需要比较这些唯一的数字或字符串。

将comlun压缩为唯一的较短值以进行数据行比较的任何方法

如果您有这些行上次更新的时间戳或行版本号,通常其中一个是在需要"同步"的表上实现的,每次更新时都会更新/增加。

否则,如果不能比较每个值,那么一个散列函数(分别对所有列进行散列)和一个散列将是第二好的。

附言:哈希永远不会保证没有冲突,但根据数据集的大小,这是不可能的。