【发布时间】:2013-08-27 06:02:01
【问题描述】:
在实时消息传递应用程序中,我想控制传入消息是否是唯一的。为此,我计划在 db 中插入传入消息的哈希作为唯一键,并检查我是否得到唯一键异常。 (oracle 中的 ORA-00001)。 这是一种有效的方法还是有更好的方法来考虑这种情况? 对于那些想知道的人,程序是用java编写的,作为数据库,我们使用oracle。
【问题讨论】:
标签: oracle software-design unique-key
在实时消息传递应用程序中,我想控制传入消息是否是唯一的。为此,我计划在 db 中插入传入消息的哈希作为唯一键,并检查我是否得到唯一键异常。 (oracle 中的 ORA-00001)。 这是一种有效的方法还是有更好的方法来考虑这种情况? 对于那些想知道的人,程序是用java编写的,作为数据库,我们使用oracle。
【问题讨论】:
标签: oracle software-design unique-key
如果您试图解决在非常大的字符串上进行唯一性测试的性能问题,那么这是实现它的好方法,是的。
不过,您可能需要一种方法来处理哈希冲突,因为唯一键的存在会阻止加载具有相同哈希的不同消息。一种方法是检查现有的匹配哈希并对消息的全文进行比较测试。它会降低您的索引大小,因为您将索引哈希而不是消息文本,但 Ii 不会完全万无一失,因为如果时间完全正确(或错误,取决于您的视角)。
【讨论】: