Bitte ignorieren Sie den obigen Benchmark, in dem wir einen Fehler hatten.
Wir haben 1M-Datensätze mit folgenden Spalten eingefügt:id (int), status (int), message (140 char, random). Alle Tests wurden mit dem C++-Treiber auf einem Desktop-PC i5 mit 500 GB SATA-Festplatte durchgeführt.
Benchmarking mit MongoDB :
1 Mio. Datensätze einfügen ohne Index
time: 23s, insert/s: 43478
1 Mio. Datensätze einfügen mit Index auf ID
time: 50s, insert/s: 20000
Als nächstes fügen wir 1 Million Datensätze zu derselben Tabelle mit Index und 1 Millionen Datensätzen
hinzutime: 78s, insert/s: 12820
das alles führt zu fast 4-gb-dateien auf fs.
Benchmark mit MySQL :
1 Mio. Datensätze einfügen ohne Index
time: 49s, insert/s: 20408
1 Mio. Datensätze einfügen mit Index
time: 56s, insert/s: 17857
Als nächstes fügen wir 1 Million Datensätze zu derselben Tabelle mit Index und 1 Millionen Datensätzen
hinzutime: 56s, insert/s: 17857
genau die gleiche leistung, kein verlust bei mysql bei wachstum
Wir sehen, dass Mongo bei diesem Test rund 384 MB Ram gefressen hat und 3 Kerne der CPU belastet, MySQL war mit 14 MB zufrieden und belastet nur 1 Kern.
Edorian war mit seinem Vorschlag auf dem richtigen Weg, ich werde noch ein paar Benchmarks machen und ich bin mir sicher, dass wir auf einem 2x Quad Core Server 50K Inserts/sec erreichen können.
Ich denke, MySQL wird der richtige Weg sein.