OrientDB官方網站說:OrientDB慢寫
公共硬件上存儲多達150.000文件每秒,10張 數十億每天的文檔。大圖只需幾毫秒就可以加載,而不會執行代價高昂的JOIN,如Relational DBMS。
但是,執行下面的代碼表明它需要~17000ms來插入150000個簡單的文檔。
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雙核CPU E7500 @ 2.93GHz的
- 8GB RAM
- Windows 7的64位
我在做什麼錯?
將10個併發線程保存分割,以最大限度地減少Java的開銷,使其在~13000ms內運行。比OrientDB的頭版說的還要慢。
您是否能夠獲得最佳性能?我研究這個問題,但是我的表現比你更差 –
我決定用H2代替OrientDB。 H2適合我的用例。 –