Think + Craft

August 25, 2010 at 1:00am
home
Ich hatte schon vor Beginn der Arbeiten an Fade mit MongoDB geliebäugelt, allerdings fiel die Wahl des Datenbanksystems dann doch auf MySQL. Hauptsächlich aus Gründen der Vertrautheit, schließlich sind wir schon seit zehn Jahren ein ziemlich gutes Team.

Im Endeffekt hat mich dann Lithium und speziell FitzHAgard dazu bewogen, doch den großen Schritt zu MongoDB zu vollziehen. Ganz kurz: MongoDB ist ein junges aber ausgereiftes, Schema-loses, Dokument-basiertes Datenbanksystem.

Als besonders reizvoll haben sich die vielen verfügbaren Datentypen erwiesen. So kann man z.B. Objekte, Arrays und Booleans ohne Umwandlung direkt abspeichern. Das hat dazu geführt, dass ich die anfänglichen sechs Datenbank-Tabellen auf aktuell drei reduzieren konnte.

Ein wahrer Segen ist auch die Syntax. Folgende MySQL-Abfrage…

SELECT * FROM `users` WHERE `slug` = 'mol' LIMIT 1

…schreibt sich in MongoDB so:

db.users.findOne({slug: 'mol'});

Ein Gedicht für den SQL geplagten Entwickler.

Ich könnte jetzt noch seitenweise über Vor- und Nachteile berichten, aber darum soll es jetzt gar nicht gehen. Für unser Projekt hat sich MongoDB bisher durchweg als bessere Lösung herausgestellt und ich lege jedem ans Herz, dass NoSQL DBMS mal auszuprobieren.

Micha

Ich hatte schon vor Beginn der Arbeiten an Fade mit MongoDB geliebäugelt, allerdings fiel die Wahl des Datenbanksystems dann doch auf MySQL. Hauptsächlich aus Gründen der Vertrautheit, schließlich sind wir schon seit zehn Jahren ein ziemlich gutes Team.

Im Endeffekt hat mich dann Lithium und speziell FitzHAgard dazu bewogen, doch den großen Schritt zu MongoDB zu vollziehen. Ganz kurz: MongoDB ist ein junges aber ausgereiftes, Schema-loses, Dokument-basiertes Datenbanksystem.

Als besonders reizvoll haben sich die vielen verfügbaren Datentypen erwiesen. So kann man z.B. Objekte, Arrays und Booleans ohne Umwandlung direkt abspeichern. Das hat dazu geführt, dass ich die anfänglichen sechs Datenbank-Tabellen auf aktuell drei reduzieren konnte.

Ein wahrer Segen ist auch die Syntax. Folgende MySQL-Abfrage…

SELECT * FROM `users` WHERE `slug` = 'mol' LIMIT 1

…schreibt sich in MongoDB so:

db.users.findOne({slug: 'mol'});

Ein Gedicht für den SQL geplagten Entwickler.

Ich könnte jetzt noch seitenweise über Vor- und Nachteile berichten, aber darum soll es jetzt gar nicht gehen. Für unser Projekt hat sich MongoDB bisher durchweg als bessere Lösung herausgestellt und ich lege jedem ans Herz, dass NoSQL DBMS mal auszuprobieren.

Micha