检查实时应用程序的唯一性

时间:2013-08-27 06:02:02

标签: oracle software-design unique-key

在实时消息传递应用程序中,我想控制传入消息是否唯一。为此,我计划在db中插入传入消息的哈希作为唯一键,并检查我是否获得唯一键异常。 (oracle中的ORA-00001)。 这是一种有效的方式还是有更好的方法来考虑这种情况? 对于想要了解的人,程序是用java编写的,而我们使用oracle作为db。

1 个答案:

答案 0 :(得分:2)

如果你试图解决非常大的字符串上的唯一性测试的性能问题,那么这是实现它的一种不错的方法,是的。

但是,您可能需要一种方法来处理哈希冲突,因为存在唯一键会阻止加载相同哈希的不同消息。一种方法是检查现有的匹配哈希值,并针对消息的全文进行比较测试。它会使您的索引大小保持不变,因为您在散列上索引而不是消息文本,但是Ii不会完全万无一失,因为如果时间完全正确(或者错误,取决于您的错误,可能会由不同的会话加载两条相同的消息)角度)。