offizielle Seite Orientdb sagt:Orientdb langsamer Schreib
auf gemeinsame Hardware speichert bis zu 150.000 Dokumente pro Sekunde, 10 Milliarden von Dokumenten pro Tag. Große Graphen werden in wenigen Millisekunden geladen, ohne kostspielige JOIN wie die relationalen DBMS auszuführen.
Aber die Ausführung des folgenden Codes zeigt, dass es ~ 17000ms dauert, 150000 einfache Dokumente einzufügen.
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();
}
}
}
Meine Hardware:
- Dell Optiplex 780
- Intel (R) Core (TM) 2 Duo CPU E7500 @ 2.93GHz
- 8GB RAM
- Windows 7 64bit
Was mache ich falsch?
Das Teilen der Saves in 10 gleichzeitige Threads, um den Overhead von Java zu minimieren, ließ es in ~ 13000ms laufen. Immer noch viel langsamer als die OrientDB-Startseite sagt.
Konnten Sie die meiste Leistung erzielen? Ich studiere dieses Problem, aber meine Leistung ist noch schlechter als du. –
Ich habe mich entschieden, H2 anstelle von OrientDB zu verwenden. H2 passt zu meinem Anwendungsfall. –