所以我有一个大约2000万个键值对的列表,我将数据存储在几个MapDB中,以便看看它如何影响我的程序性能,以及实验。
问题是,将(以随机顺序)2000万个键值对插入mapdb需要花费大量时间。所以,我想对我拥有的键值对列表进行排序,以便我可以更快地插入它们,从而更快地构建数据库。
那么,我该怎么做呢?
我想学习如何为MapDB的BTreeSet和BTreeMap,或者使用单键值对的MapDB和对单个键具有多个值的MapDB这样做。
编辑: 我忘了提一下,键值对是String对象。
答案 0 :(得分:2)
使用Build in Data Pump创建新的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()