因此,我有一个大约2000万个键值对的列表,我以不同的方式将数据存储在几个MapDB中,看看它如何影响我的程序性能,为了实验的缘故。
问题是,在mapdb中插入2000万个键值对需要相当长的时间(随机顺序)。因此,我想对我拥有的键值对列表进行排序,这样我就可以更快地插入它们,从而更快地利用它们构建数据库。
那我该怎么做呢?
我想了解如何为MapDB的BTreeSet和BTreeMap,或者使用单键值对的MapDB和一个键具有多个值的MapDB做到这一点。
编辑:我忘了提到,键值对是字符串对象.
发布于 2014-09-16 09:48:21
使用内置数据泵创建新的BTreeMap。它具有线性速度和记录数。即使数据不适合内存,它也会对数据进行排序。
Map newMap = db.createTreeMap("map")
.pumpSource(randomIterator) //source of data to import
.pumpBatchSize(1000000) //sort data from source, batch size must be set so it fits into memory
.make()
https://stackoverflow.com/questions/25538711
复制相似问题