MySQL vs. MongoDB: Datenbanksysteme für Web-Anwendungen im Vergleich Detail - Computerwelt

Computerwelt: Aktuelle IT-News Österreich


09.10.2011 Diego Wyllie*

MySQL vs. MongoDB: Datenbanksysteme für Web-Anwendungen im Vergleich

Mit einfacher Skalierbarkeit, hoher Flexibilität und einem effizienten Dokument-orientierten Ansatz macht die nicht-relationale Datenbank "MongoDB" dem bewährten MySQL-System zunehmend Konkurrenz.

MySQL gilt als die populärste Open-Source-Datenbank der Welt. Vor allem in der Web-Entwicklung hat sich dieses relationale Datenbanksystem, das ursprünglich vom Schwedischen Unternehmen MySQL AB im Jahr 1994 entwickelt wurde, als Quasi-Standard etabliert. Nach offiziellen Angaben soll MySQL aktuell über sechs Millionen Installationen weltweit und mehr als 65.000 Downloads am Tag verzeichnen. Zu den prominenten Unternehmen, die auf diese Lösung setzen, zählen Internetriesen wie Google, Twitter, Wordpress, YouTube und Wikipedia, um nur einige Beispiele zu nennen.

MySQL bietet mittlerweile zahlreiche Features und bewährte Administrations-Tools und kann vor allem durch Kostenvorteile, herausragende Stabilität und hohe Sicherheit überzeugen. Doch seit einigen Jahren wird das Konzept relationaler Datenbanken zunehmend in Frage gestellt. Damit bekommt MySQL immer mehr Konkurrenz von neuen, innovativen Datenbanklösungen, die ebenfalls als Open-Source bereitgestellt werden, und einen vollkommen neuen Ansatz verfolgen.

NICHT-RELATIONALE DATENBANKEN STARK IM KOMMEN Das Stichwort lautet hier "NoSQL". Der Begriff steht, anders als zunächst von den meisten erwartet, nicht für "kein SQL", sondern für "nicht nur SQL" (Not only SQL). Die unklare Bezeichnung sollte also nicht als Kampfansage gegen traditionelle Datenbanken verstanden werden. Ziel des neuen Ansatzes ist es vielmehr, relationale Datenbanken sinnvoll zu ergänzen wo sie Defizite aufzeigen. Entstanden ist dieses Konzept in erster Linie als Antwort zur Unflexibilität, sowie zur relativ schwierigen Skalierbarkeit von klassischen Datenbanksystemen, bei denen die Daten nach einem stark strukturierten Modell gespeichert werden müssen.

In Zeiten von Web 2.0, Cloud-Computing und Sozialen Netzwerken wachsen die Datenmengen bei Web-Anwendungen dramatisch. Damit steigen die Anforderungen an Datendurchsatz und Skalierbarkeit der darunter liegenden Datenbanken immer weiter an. Ein Paradebeispiel für diese Problematik ist Twitter. Wie der US-Blog TechCrunch im Juni 2011 berichtete, muss die IT-Landschaft des populären Informations-Netzwerks mittlerweile rund 200 Millionen Tweets am Tag bewältigen. Ein Jahr zuvor waren es "nur" 65 Millionen. Bei solchen datenintensiven Applikationen leiden relationale Datenbanken üblicherweise unter Leistungsproblemen und stoßen oft an ihre Grenzen. Aus diesem Grund setzt Twitter neben MySQL mittlerweile auch auf NoSQL-Lösungen, um die Verfügbarkeit und Performance seines Dienstes zu verbessern.

WAS IST MONGODB ÜBERHAUPT? Mittlerweile sind aus dem Open-Source-Lager zahlreiche NoSQL-Lösungen hervorgegangen. Die Seite www.nosql-database.org, betreut von Stefan Edlich, Professor an der Beuth Hochschule für Technik Berlin, bietet einen guten Überblick. Zu den bekanntesten Vertretern dieser neuen Datenbanksorte zählt neben "Redis", "Apache Cassandra" und "CouchDB" auch MongoDB. Das System wurde 2009 vom US-Startup 10gen nach rund zwei Jahren Entwicklung der Öffentlichkeit als Open-Source-Lösung vorgestellt. Der etwas gewöhnungsbedürftige Name stammt aus dem englischen Begriff "humongous", der auf Deutsch mit "gigantisch" beziehungsweise "riesig" übersetzt wird. Die Lösung ist in der Programmiersprache C++ implementiert und für die Betriebssysteme Windows, Mac OS X und Linux erhältlich. Sowohl 32-Bit- als auch 64-Bit-Systeme werden unterstützt. MongoDB wurde dieses Jahr unter anderem bei den renommierten "Bossie Awards" unserer Schwesterpublikation Infoworld als eine der besten Open-Source-Lösungen prämiert. Wie der Hersteller erklärt, ist die Lösung auf hohe Leistung, große Datenmengen, hohe Flexibilität, sowie einfache Skalierbarkeit ausgelegt.

In nur drei Jahren konnte MongoDB, die heute kostenlos in der Version 2.0 zur Verfügung steht, bereits namhafte Unternehmen von seinen Vorteilen überzeugen. So setzen erfolgreiche Web-Anwendungen, die von Millionen Anwendern weltweit verwendet werden, die junge Lösung in kritischen Produktionsumgebungen ein. Dazu zählen unter anderem das Standortbezogene Soziale Netzwerk "Foursquare", das Online-Netzwerk für städtische Kleinanzeigen "Craigslist", der URL-Verkürzungs-Service "Bit.ly", sowie der Musik-Streaming-Dienst "Grooveshark".

DOKUMENTE ALS DATENSÄTZE Der entscheidende Unterschied zu MySQL besteht darin, dass MongoDB Dokument-orientiert arbeitet. Dokumenten-basierende Datenbanken sind auf eine schemafreie Struktur ausgelegt. Bei MongoDB gibt es also kein festes Tabellenschema und dadurch beispielsweise auch keine zwingenden Relationstabellen und Joins, die mit der Weiterentwicklung und dem Ausbau der Datenbank immer komplexer werden. Stattdessen lassen sich Relationen entweder direkt im Datensatz speichern oder bei Bedarf individuell bei der Datenabfrage erstellen. Dadurch ist die Datenstruktur wesentlich flexibler als bei MySQL und lässt sich auf einfache Weise horizontal skalieren (Auto-Sharding).

Statt von Tabellen wird bei MongoDB von Kollektionen (Collections) gesprochen. Jede Kollektion kann Dokumente beinhalten analog zu Zeilen beziehungsweise Datensätzen in einer MySQL-Tabelle. Dokumente werden im so genannten BSON-Format gespeichert und ausgegeben und sind JavaScript-Objekten sehr ähnlich (siehe Grafik). Dieses Format stammt von dem kompakten, immer beliebteren JSON-Format (JavaScript Object Notation) ab und ist, wie das Präfix "Binary" andeutet, für eine overhead-arme Darstellung von binären Datenobjekten ausgelegt. Jedes Dokument kann dabei eine beliebige Anzahl an Feldern besitzen, während eine verschachtelte Array-Struktur ebenfalls möglich ist. Zudem dürfen Dokumente auch innerhalb eines Dokuments gespeichert werden.

Doch bei all diesen Unterschieden weisen MongoDB und MySQL auch einige wesentliche Gemeinsamkeiten auf. So wird bei beiden Datenbanklösungen eine eindeutige ID pro Datensatz als Primärschlüßel verwendet, während in beiden Fällen Select-relevante Spalten indiziert werden können, um die Performance bei der Abfrage dieser Felder zu erhöhen. Diese Gemeinsamkeiten tragen nicht zuletzt dazu bei, erfahrenen MySQL-Entwicklern den Einsteig in MongoDB zu erleichtern.

Diesen Artikel

Bewertung:

Übermittlung Ihrer Stimme...
Noch nicht bewertet. Seien Sie der Erste, der diesen Artikel bewertet!
Klicken Sie auf den Bewertungsbalken, um diesen Artikel zu bewerten.
  Sponsored Links:

IT-News täglich per Newsletter

E-Mail:
Weitere CW-Newsletter

CW Premium Zugang

Whitepaper und Printausgabe lesen.  

kostenlos registrieren

Aktuelle Praxisreports

(c) FotoliaHunderte Berichte über IKT Projekte aus Österreich. Suchen Sie nach Unternehmen oder Lösungen.

Zum Thema

  • ectacom GmbH

    ectacom GmbH Aus- und Weiterbildung, IT-Asset- und Lizenzmanagement, Übernahme von Softwareprojekten, Datenschutz, Antiviren- und Virenscanner Software, Backup und Recovery Systeme, Firewalls,... mehr
  • T-Systems Austria GesmbH

    T-Systems Austria GesmbH WLAN-Systeme, VPN, Voice Mail Dienste, Videokonferenz-Systeme, Unified Messaging Dienste, Netzwerk-Systeme (LAN, MAN, WAN), Netzwerk-Management,... mehr
  • SNP AUSTRIA GmbH

    SNP AUSTRIA GmbH Qualitätssicherung, Kaufmännische Software (ERP), Tools, Programmiersprachen, Datenkonvertierung, Übernahme von Softwareprojekten, Systempflege- und Wartung,... mehr
  • Anexia

    Anexia Application Service Providing, Auftragsentwicklung für Software, Individual-Softwareentwicklung, RZ-Dienstleistungen, Übernahme von Softwareprojekten, User Helpdesk-Systeme und Hotlines mehr

Hosted by:    Security Monitoring by: