Database Reference
In-Depth Information
Ich habe Ihnen nun die wichtigsten Features für den Einstieg in MongoDB nahegebracht.
Doch MongoDB bietet noch mehr als die hier vorgestellten Möglichkeiten. So können zu-
sätzlich zu dem „_id“ -Index eigene Indizes erstellt werden. Diese Indizes können aus meh-
reren Feldern bestehen, aus Feldern in Objekten eines Wertes ( ‚adresse.stadt' ) und aus der
Kombination beider Möglichkeiten. Indizes können wahlweise eindeutig oder mehrfach
vorhanden sein. Ein weiteres Highlight bei Indizes ist die Möglichkeit, anhand von geogra-
fischen Daten Näherungssuchen durchzuführen.
Capped Collections sind Collections fester Größe. Bei Überschreitung dieser Größe wird
das älteste Dokument gelöscht und das neue gespeichert. So können relativ leicht Logfiles
etc. umgesetzt werden. Performanceprobleme können entweder durch explain() oder den
eingebauten Profiler untersucht werden. Die Funktion db.autohaus.find().explain() liefert
verschiedene Informationen zu dieser Abfrage. Der Profiler speichert die Laufzeiten der
Abfragen in einer Capped Collection. Zum Einschalten des Profilers genügt ein Aufruf von
db.setProfilingLevel(ms) , wobei ms die Zeit der Abfragen in Millisekunden ist, ab der das
Logging stattfindet. Ausgeschaltet wird der Profiler mit db.setProfilingLevel(0) , die Aus-
gabe erfolgt über db.system.profile.find() .
MongoDB bietet sowohl reichhaltige Master-Slave Replikationsmöglichkeiten als auch die
Möglichkeit zum Sharding , bei dem große Datenmengen auf mehrere Datenbanken auf-
geteilt werden. Anders als beim Replizieren, wo alle Daten auf den Systemen redundant
vorhanden sind, werden beim Sharding die Daten aufgeteilt. Sowohl das Sharding als auch
die Replikationsmöglichkeiten von MongoDB sind vielfältig, sodass hier auf externe Do-
kumentationen verwiesen werden muss.
Fazit: MongoDB vs. CouchDB
MongoDB versucht, den Einstieg in die Welt der NoSQL-Datenbanken leicht zu machen,
in dem es eine für viele Nutzer verständlichere Art der Datenabfrage als map/reduce bietet.
Dadurch ist der Einstieg leichter, und vor allem die Abfragen gelingen anfangs einfacher
als bei CouchDB. Das mag auch an der vertrauten Art der Programmierung von Daten-
banken mit PHP liegen. Doch obwohl beide Datenbanken oft zusammen genannt werden,
unterscheiden sie sich doch in ihrer Philosophie. Während MongoDB ansetzt, die Daten-
haltung in der klassischen Drei-Schichten-Anwendung (Frontend-Backend-Datenbank) zu
ersetzten, wartet CouchDB mit einem ganz anderen Ansatz auf. Durch die Verwendung von
HTTP und REST als Transportmittel und der Möglichkeit der integrierten Programmierung
und des HTTP-Servers in CouchDB sind Anwendungen ohne die Backend-Schicht reali-
sierbar. Doch auch das gesamte Potenzial von MongoDB kann erst nach einiger Zeit er-
schlossen werden. Durch die Verwendung von Javascript in den Abfragen und Filtern sind
auch hier viele Möglichkeiten vorhanden, die sich einem erst nach einiger Zeit erschlie-
Search WWH ::




Custom Search