【发布时间】:2012-08-30 21:02:49
【问题描述】:
OrientDB 官网说:
在普通硬件存储中,每秒最多 150.000 个文档,10 每天数十亿份文件。大图加载在几个 毫秒而不执行昂贵的 JOIN,例如关系 DBMS。
但是,执行以下代码表明插入 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();
}
}
}
我的硬件:
- 戴尔 Optiplex 780
- Intel(R) Core(TM)2 Duo CPU E7500 @ 2.93Ghz
- 8GB 内存
- Windows 7 64 位
我做错了什么?
将保存拆分为 10 个并发线程以最小化 Java 的开销,使其运行时间约为 13000 毫秒。仍然比 OrientDB 头版说的慢得多。
【问题讨论】:
-
你能获得最大的性能吗?我研究这个问题,但是我的表现比你还差
-
我决定使用 H2 而不是 OrientDB。 H2 适合我的用例。