因此,我列出了大约2000万个键值对,并以不同的方式将数据存储在多个MapDB中,以查看其如何影响程序性能以及进行实验。

事实是,将2000万个键值对(以随机顺序)插入mapdb需要花费大量时间。因此,我想对键值对的列表进行排序,以便可以更快地插入它们,从而更快地从中构建数据库。

那么,我将如何处理呢?

我想学习如何对MapDB的BTreeSet和BTreeMap或使用单个键值对的MapDB以及对单个键具有多个值的MapDB进行此操作。

编辑:
我忘了提到,键值对是String对象。

最佳答案

使用Data Pump中的build创建新的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()

关于java - 如何对项目进行排序以更快地插入MapDB BTree?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25538711/

10-09 05:11