我正在使用h2数据库来存储数据。 每个记录在数据库中必须是唯一的(唯一的意义在于时间戳,名称,消息,..的组合不会在表中出现两次)。因此表中的一列是记录中数据的散列。为了加速搜索记录是否已经存在,我在哈希列上创建了一个索引。确实用给定的散列搜索记录非常快。 但是这里有个问题:在开始插入10k条记录的速度足够快(大约需要一秒)的时候,当数据库中已经有一百万条记录(需要一分钟)时,它会非常慢。这可能是因为新的哈希值需要集成到现有的索引b-tree中。H2:因列索引而导致插入缓慢
有什么办法可以加快速度,还是有更好的方法来确保表中数据记录的唯一性?
编辑:更具体: 比方说,我的记录是具有以下字段交易:
时间戳,类型,发件人收件人,量,消息
事务应该只出现一次在插入新事务之前,我必须检查该事务是否已经在表中。由于所有字段的sha 256哈希值都是唯一的,因此我的想法是向放置字段哈希表的表中添加一列“哈希”。在插入新记录之前,我计算字段的哈希值并查询表哈希。
我用更具体的例子更新了我的问题。 – user3528637 2014-11-25 13:15:02