我正在使用h2數據庫來存儲數據。 每個記錄在數據庫中必須是唯一的(唯一的意義在於時間戳,名稱,消息,..的組合不會在表中出現兩次)。因此表中的一列是記錄中數據的散列。爲了加速搜索記錄是否已經存在,我在哈希列上創建了一個索引。確實用給定的散列搜索記錄非常快。 但是這裏有個問題:在開始插入10k條記錄的速度足夠快(大約需要一秒)的時候,當數據庫中已經有一百萬條記錄(需要一分鐘)時,它會非常慢。這可能是因爲新的哈希值需要集成到現有的索引b-tree中。H2:因列索引而導致插入緩慢
有什麼辦法可以加快速度,還是有更好的方法來確保表中數據記錄的唯一性?
編輯:更具體: 比方說,我的記錄是具有以下字段交易:
時間戳,類型,發件人收件人,量,消息
事務應該只出現一次在插入新事務之前,我必須檢查該事務是否已經在表中。由於所有字段的sha 256哈希值都是唯一的,因此我的想法是向放置字段哈希表的表中添加一列「哈希」。在插入新記錄之前,我計算字段的哈希值並查詢表哈希。
我用更具體的例子更新了我的問題。 – user3528637 2014-11-25 13:15:02