2013-08-27 22 views
1

在實時消息應用程序中,我想控制傳入消息是否唯一。爲此,我計劃在db中插入一個傳入消息的散列作爲唯一鍵,並檢查是否有唯一鍵異常。 (oracle中的ORA-00001)。 這是一種有效的方式還是有更好的方法來考慮這種情況? 對於想要知道的人來說,程序是用java編寫的,作爲db我們使用oracle。檢查實時應用程序的唯一性

回答

2

如果您試圖解決超大字符串唯一性測試的性能問題,那麼這是實現它的體面方式,是的。

雖然您可能需要一種處理散列衝突的方法,因爲唯一鍵的存在會阻止具有相同散列的不同消息加載。一種方法是檢查現有的匹配哈希值並對消息的全文進行比較測試。它會保持你的索引大小下降,因爲你將索引放在哈希上而不是消息文本上,但是Ii不會是完全萬無一失的,因爲如果時機完全正確(或錯誤,取決於你的透視)。

+0

感謝您的快速響應。實際上,我主要關心的是插入和檢查唯一性性能,因爲我們可以讓客戶端在消息中發送一些唯一標識符並消除所有哈希開銷。 – cacert