Zum Thema Datenbanken finden sich im Netz allerhand Reviews, Vergleiche und Tests. Bei genauerer Betrachtung wird schnell klar, dass den Tests (fast) immer eine recht kleine Datenbasis zugrundeliegt. Dadurch sind diese Bewertungen nicht immer für große Produktivsysteme repräsentativ.
Die Datenbank-Hersteller wiederum präsentieren auf ihren Seiten sehr gerne für den Produktivbetrieb nicht verwertbare Benchmarks. Auch diese Zahlen sollte man nur mit großer Vorsicht genießen und auf keinen Fall dazu benutzen, die Geschwindigkeit der Lösungen miteinander zu vergleichen. Oft ist bei diesen Benchmarks die Last unterschiedlich, die Systeme sind mal verteilt, mal unverteilt. Mal werden die verschiedenen Datenbankenoperationen mit einem Thread, ein anderes Mal mit mehreren Threads durchgeführt. Letzteres gilt zum Teil auch für unsere Benchmark-Zahlen, so dass man mit diesen keine Aussage darüber treffen kann, welche Lösung die schnellste ist.
Im Fall unserer Suchmaschine www.suchen.de wurde schnell klar, dass eigene Vergleiche notwendig sind, um das Abschneiden der Datenbanken besser bewerten zu können.
Die Crux an relationalen Datenbanken ist das feste Schema, dem man unterworfen ist: Eine Tabelle besteht in der Regel aus mehreren Spalten. Nicht jede Spalte einer Zeile enthält unbedingt einen Eintrag. In diesem Fall schreibt die Datenbank hier NULL oder einem vordefinierten Wert. Bei uns trat das sehr oft, eigentlich immer auf. Auf der Suche nach einer "besseren" Datenbank stießen wir sehr schnell auf NoSQL-Datenbanken verschiedener Anbiet, die nicht das Problem der "gewöhnlichen" SQL-Datenbanken haben. Unsere Kandidaten kommen mit verschiedenen Features daher und wir standen daher vor der Wahl, die für unsere Anwendung beste Implementierung auszusuchen.