2013-08-27 21 views
1

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

回答

2

如果您试图解决超大字符串唯一性测试的性能问题,那么这是实现它的体面方式,是的。

虽然您可能需要一种处理散列冲突的方法,因为唯一键的存在会阻止具有相同散列的不同消息加载。一种方法是检查现有的匹配哈希值并对消息的全文进行比较测试。它会保持你的索引大小下降,因为你将索引放在哈希上而不是消息文本上,但是Ii不会是完全万无一失的,因为如果时机完全正确(或错误,取决于你的透视)。

+0

感谢您的快速响应。实际上,我主要关心的是插入和检查唯一性性能,因为我们可以让客户端在消息中发送一些唯一标识符并消除所有哈希开销。 – cacert