OrientDB官方网站说:
在通用硬件存储上,每秒最多150,000个文档,10 每天数十亿份文件。大图加载很少 没有执行昂贵的JOIN(例如Relational)的毫秒数 数据库管理系统。
但是,执行以下代码表明,插入150000个简单文档需要大约17000ms。
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
- 英特尔(R)酷睿(TM)2 Duo CPU E7500 @ 2.93Ghz
- 8GB RAM
- Windows 7 64位
我究竟做错了什么?
将保存拆分为10个并发线程以最大限度地减少Java的开销,使其在~13000ms内运行。比OrientDB首页所说的要慢得多。