OrientDB官方网站说:
在普通硬件上,每秒最多可存储 150,000 个文档,每天可存储 100 亿个文档。大图在几毫秒内加载,无需执行昂贵的 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 双核 CPU E7500 @ 2.93Ghz
- 8GB 内存
- 视窗 7 64 位
我究竟做错了什么?
将保存拆分为 10 个并发线程以最小化 Java 的开销,使其运行时间约为 13000 毫秒。仍然比 OrientDB 头版说的慢得多。