Database 什么';这是比较数据库表与其镜像的最有效方法

Database 什么';这是比较数据库表与其镜像的最有效方法,database,performance,sqlite,compare,Database,Performance,Sqlite,Compare,我有一个SQLite数据库表和一个相同的镜像表。 该表有一个id列(主键)和许多其他列。在给定的点上,它可能包含大约1K行 我的程序经常被触发,以对照表的镜像检查表,查看表中的任何列是否发生了任何更改。我只需要知道发生了变化,我不在乎哪个栏目的内容发生了变化 我需要这张支票非常有效,因为它经常发生。 我曾想过对ID求和并进行比较,但这已经足够好了。 有什么想法吗 谢谢 研究散列。。不过,这仍然需要完全读取所有数据。其他备选方案包括“changestamp”列(它是当前行的散列)。它需要在每次写入

我有一个SQLite数据库表和一个相同的镜像表。 该表有一个id列(主键)和许多其他列。在给定的点上,它可能包含大约1K行

我的程序经常被触发,以对照表的镜像检查表,查看表中的任何列是否发生了任何更改。我只需要知道发生了变化,我不在乎哪个栏目的内容发生了变化

我需要这张支票非常有效,因为它经常发生。 我曾想过对ID求和并进行比较,但这已经足够好了。 有什么想法吗


谢谢

研究散列。。不过,这仍然需要完全读取所有数据。其他备选方案包括“changestamp”列(它是当前行的散列)。它需要在每次写入时进行更新,但可以提供一种快速的方法来区分差异(相同的全局ID,不同的changestamp),并且它本身可以用作表哈希的一部分。我曾考虑过使用哈希,但我真的希望避免读取所有数据。我宁愿找到一种方法,只扫描表或索引的一部分,这样它几乎可以确定是否有更改。我可以“活”在每1000次扫描中就有一次出错的概率中,所以就这样做吧。使用散列(每行或每列/行)只是提供了一个很好的简单值来用作检查(尽管您可以单独检查每个列)。您可以选择要散列的行/列。