Performance-Vergleich von PostgreSQL, SQLite, db4o und MongoDB
Performance-Vergleich von PostgreSQL, SQLite, db4o und MongoDB
Performance-Vergleich von PostgreSQL, SQLite, db4o und MongoDB
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Kapitel: 5 Benchmark<br />
cursor.execute("""SELECT count(*) FROM raindrop""")<br />
Abbildung 5-13: Abfragen aller Test-Daten in "<strong>PostgreSQL</strong>" <strong>und</strong> „<strong>SQLite</strong>“<br />
query.Constrain(clr.GetClrType(Raindrop))<br />
result = query.Execute()<br />
Abbildung 5-14: Abfragen aller Test-Daten in "<strong>db4o</strong>"<br />
db.raindrop.find().count()<br />
Abbildung 5-15: Abfragen aller Test-Daten in "<strong>MongoDB</strong>"<br />
5.3.3 BMT-3 Equal - Abfrage auf Gleichheit<br />
Im Folgenden wird pro DBMS einen Code-Ausschnitt, welcher die Daten mit der x-Koordinate 200<br />
abfragt, aufgezeigt.<br />
cursor.execute("""SELECT count(*) FROM raindrop WHERE x = 200""")<br />
Abbildung 5-16: Abfragen der Test-Daten auf x-Koordinate 200 in "<strong>PostgreSQL</strong>"<br />
cursor.execute('SELECT count(*) FROM raindrop WHERE x=200')<br />
Abbildung 5-17: Abfragen der Test-Daten auf x-Koordinate 200 in "<strong>SQLite</strong>"<br />
query.Constrain(clr.GetClrType(Raindrop))<br />
query.Descend("_x").Constrain(200)<br />
result = query.Execute()<br />
Abbildung 5-18: Abfragen der Test-Daten auf x-Koordinate 200 in "<strong>db4o</strong>"<br />
db.raindrop.find({"x": 200}).count()<br />
Abbildung 5-19: Abfragen der Test-Daten auf x-Koordinate 200 in "<strong>MongoDB</strong>"<br />
5.3.4 BMT-4 Small-/Large-Range - Kleine <strong>und</strong> grosse Bereichsabfrage<br />
Im Folgenden wird pro DBMS einen Code-Ausschnitt, welcher die Daten mit der x-Koordinate 200<br />
abfragt, aufgezeigt.<br />
Folgende Code-Ausschnitte zeigen eine Abfrage über einen Bereich der Test-Daten. Dabei werden<br />
zwei unterschiedlich grosse Bereiche abgefragt. Bei der kleineren Abfrage wird nur einen Zehntel<br />
<strong>und</strong> bei der grösseren Abfrage die mittlere Hälfte der Daten ausgelesen. Folgende Abbildung zeigt<br />
die betroffenen Regionen der beiden Abfragen.<br />
Herbst 2011 17/36