PostgreSQL中的Checksum字段进行内容比较

时间:2012-03-07 18:27:03

标签: postgresql checksum

我在一个包含大量内容(文本或二进制数据)的表中有一个字段。如果我想知道另一个文本是否等于这个文本,我可以使用校验和来比较这两个文本。我可以将此字段定义为UNIQUE,以避免重复内容。

我怀疑的是,如果我创建一个校验和字段,这种比较会加快,所以PostgreSQL已经这样做了(不需要程序员干预)或者我需要手动执行此操作吗?

编辑:更好的是,为TEXT字段创建校验和,使用校验和或两种方式相同?

2 个答案:

答案 0 :(得分:4)

PostgreSQL中的大型列没有默认的“校验和”,你必须自己实现。

回复评论

哈希索引为等式检查提供了快速性能。它们会自动更新。但是它们还没有完全集成到PostgreSQL中,所以不鼓励使用它们 - read the manual

您无法查询值并在应用程序中使用它们。您可以使用校验和列来执行此操作,但如果表很大并且维护列,则需要为性能添加索引。我会使用触发器BEFORE INSERT OR UPDATE

因此,哈希索引可能适合您,也可能不适合您。 @ A.H.的想法当然适合这个问题......

答案 1 :(得分:1)

您可能会阅读Indexes Types手册,因为基本上您想要与哈希索引一样,但是要亲自动手。所以你可以阅读PostgreSQL中哈希索引的优缺点。