|
dbGonzales ist ultraschnell.
Um dies zu beweisen, lassen wir dbGonzales in einigen Benchmarks gegen bekannte Datenbanksysteme antreten. Die Benchmarks wurden alle auf dem gleichen System durchgeführt. Die Einstellungen wurden so gewählt,
dass dem jeweiligen System der gleiche Cache-Speicher zur Verfügung stand. Die Tests wurden so gewählt, dass keine Optimierungen zum tragen kommen, somit spiegeln die Ergebnisse die Qualität der Datenbank-Engine
wieder.
Testsystem:
Prozessor AMD Duron 700 Mhz. 128MB RAM
Festplatte IBM UltraDMA 30GB
Windows 98
Cache-Speicher für die Datenbank 16MB. Der Datenbank-Cache wurde bewusst klein gehalten um die Effizienz des Cache zu testen.
Es wurde eine Tabelle mit folgender Struktur angelegt:
create table test (a_field varchar(50), b_field float, c_field integer)
Als Daten wurden zufällige Werte verwendet.
Benchmark #1 - Anlegen von 100.000 Datensätzen:
dbGonzales: 1.1 sec.
MySQL: ~ 40 sec.
Firebird (Interbase): ~ 10 min.
Dieser Benchmark ist nur bedingt ausagefähig, da das Ergebnis stark von dem Interface zur Datenbank abhängt. Bei MySQL wurde von der Möglichkeit Gebrauch gemacht, mehrere Datensätze in einem insert .. values
Statement zu verarbeiten.
Benchmark #2 - 400.000 Datensätze sortieren:
select * from test order by a_field
dbGonzales: 5 sec.
MySQL: 20 sec
Firebird (Interbase): 16sec
Benchmark #3 - 1.600.000 Datensätze sortieren:
select * from test order by a_field
dbGonzales: 29 sec.
MySQL: noch nicht getestet
Firebird (Interbase): 80sec.
Benchmark #4 - 400.000 Datensätze durchsuchen:
select * from test where c_field=999
dbGonzales: 0.7sec - 0.3 sec.(*)
MySQL: 3.0 sec - 0.9sec (*)
Firebird (Interbase): 3.1sec - 1.2sec.(*)
der erste Wert bezeichnet den ersten Durchlauf (Cache clean) - der zweite Wert ist mit gefülltem Cache.
Benchmark #5 - 1.600.000 Datensätze durchsuchen:
select * from test where c_field=999
dbGonzales: 3.1 sec. - 2.7 sec.(*)
MySQL: 5.6sec. - 4.3sec.(*)
Firebird (Interbase): 22sec. - 19sec.(*)
der erste Wert bezeichnet den ersten Durchlauf (Cache clean) - der zweite Wert ist mit gefülltem Cache.
Benchmark #6 - 1.600.000 Datensätze ändern:
update test set b_field=c_field +1
Der Test wird zweimal durchgeführt, beim ersten Mal hat b_field den Wert null, beim zweiten Mal einen willkürlichen Wert. Der erste Durchlauf testet zugleich die Effizienz der Datenbank-Engine bei Vergrößerung eines Datensatzes. Der zweite Test zeigt die reine Update Geschwindigkeit.
dbGonzales: 42sec - 16sec.
MySQL: 102 sec - 100sec.
Firebird (Interbase): 239sec - 892sec.
Ergebnis:
In allen Standard-Funktionen einer Datenbank - Anlegen, Suchen, Sortieren und Ändern - übertrifft dbGonzales alle bekannten Systeme um Größenordnungen (Faktor 2 - 40).
Um vergleichbar zu sein, wurden die Daten bei dbGonzales
von der gleichen lokalen Platte wie bei den anderen DB-Systemen gelesen. Beim Lesen der Daten über das LAN erziehlt dbGonzales annähernd gleiche Ergebnisse (zum Teil sogar bessere).
Wir werden in Kürze Benchmarks veröffentlichen, die die Performance bei Index-Operationen vergleichen. Auch in diesem Bereich schneidet dbGonzales gleich gut ab.
|