2

そのため、約 2000 万のキーと値のペアのリストがあり、いくつかの MapDB に異なる方法でデータを保存して、プログラムのパフォーマンスにどのように影響するかを確認し、実験のために使用しています。

問題は、mapdb に 2000 万のキーと値のペアを (ランダムな順序で) 挿入するには、かなりの時間がかかることです。したがって、私が持っているキーと値のペアのリストを並べ替えて、それらをより速く挿入できるようにし、それらからデータベースをより速く構築したいと考えています。

それで、私はこれについてどうすればいいですか?

MapDB の BTreeSet と BTreeMap、または単一のキーと値のペアを使用する MapDB と、単一のキーに対して複数の値を持つ MapDB に対してこれを行う方法を学びたいと思います。

編集: 言い忘れましたが、キーと値のペアは String オブジェクトです。

4

1 に答える 1

2

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()
于 2014-09-16T09:48:21.490 に答える