OrientDB の公式サイトには次のように書かれています。
一般的なハードウェアでは、1 秒あたり最大 150.000 ドキュメント、1 日あたり 100 億のドキュメントが保存されます。Big Graph は、リレーショナル DBMS のようなコストのかかる JOIN を実行することなく、数ミリ秒でロードされます。
ただし、次のコードを実行すると、150000 個の単純なドキュメントを挿入するのに約 17000 ミリ秒かかっていることがわかります。
import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx;
import com.orientechnologies.orient.core.record.impl.ODocument;
public final class OrientDBTrial {
public static void main(String[] args) {
ODatabaseDocumentTx db = new ODatabaseDocumentTx("remote:localhost/foo");
try {
db.open("admin", "admin");
long a = System.currentTimeMillis();
for (int i = 1; i < 150000; ++i) {
final ODocument foo = new ODocument("Foo");
foo.field("code", i);
foo.save();
}
long b = System.currentTimeMillis();
System.out.println(b - a + "ms");
for (ODocument doc : db.browseClass("Foo")) {
doc.delete();
}
} finally {
db.close();
}
}
}
私のハードウェア:
- デル オプティプレックス 780
- Intel(R) Core(TM)2 Duo CPU E7500 @ 2.93Ghz
- 8GBのRAM
- Windows 7 64 ビット
私は何を間違っていますか?
Java のオーバーヘッドを最小限に抑えるために保存を 10 の同時スレッドに分割すると、実行時間は最大 13000 ミリ秒になりました。OrientDB のフロント ページに記載されている内容よりもはるかに遅いです。