Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

1

02.12.2015, 15:43

Pro-/Contra mongoDB und MySQL

Hi,

ich suche gerade Pro- und Contra Argumente für und gegen mongoDB sowie MySQL (bzw. relationale Datenbanken allgemein).
Hier mal die aktuelle Liste:

mongoDB
sehr flexibel
leicht erweiterbar
reichere Struktur durch Dokumente
schnell
einfaches mapping zwischen Datenbank und Anwendung
einfache Modellierung
meist simple Queries
keine SQL Kenntnisse notwendig, Programmierung direkt in der Anwendungssprache
Kontrolle in der Anwendung
gut skalierbar (über mehrere Server)

keine Transaktionen (geringere Garantien für Konsistenz)
redundante Daten
nicht gut austauschbar
keine automatische Typsicherheit
keine Constraints
kein Schema
Implizite Erzeugung von Feldern macht Fehlersuche schwieriger


MySQL
hohe Garantie für Konsistenz und Freihaltung von Redundanz über Schema
Transaktionen
Constraints
Typsicherheit
relationale Verknüpfungen
Datenbanksystem ist austauschbar
weit verbreitet
viele alternative Systeme

aufwendige Modellierung und mapping
Anpassungen müssen auch am Schema übernommen werden
Handhabung von Strings in der Anwendung ist unpraktisch
SQL muss zusätzlich gelernt werden
langsam
schlecht skalierbar
keine reichen Strukturen


Über einige Punkte lässt sich sicherlich streiten, aber ich habe eine Beispielanwendung in der diese Dinge so sind, auf die ich mich beziehen muss.
Fällt euch noch mehr ein, oder seit ihr mit irgendwas gar nicht einverstanden?

[Edit] Ähh wie benutze ich Tabellen? Ach egal mach ich so.

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

2

02.12.2015, 15:57



Immer wenn ich Leute sehe, die sagen, dass RDBs "langsam" seien, frage ich mich, wie zum Teufel 99% der Webserver so schnell Anfragen beantworten können.

Was für einen Anwendungsfall hast du denn? Darauf kommt es eigentlich immer an.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

3

02.12.2015, 16:31

Insgesamt ist diese Gegenüberstellung aus meiner Sicht sehr mangelhaft. Die Punkte sind nicht begründet und bei einigen kann man definitiv viel diskutieren oder komplett widersprechen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

4

02.12.2015, 16:54

Die Punkte werden in den 30 Seiten Text vorher begründet.
"Langsam" und "schnell" ist relativ und bezieht sich auf die Anwendung.

Ich werde im Text nach der Tabelle auch noch erläutern in welchen Fällen was zutrifft.
mongoDB sieht hier "immer" besser aus, ist es für viele Anwendungen natürlich nicht.

Es geht mir eher um Punkte die man erwähnen könnte. Ihr müsste die nicht einordnen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

02.12.2015, 19:23

Ich finde schon, dass ich die einordnen sollte, denn immerhin ist das hier ein offenes Topic an alle (Neulinge) gerichtet und von allen lesbar. Wenn es Dir um Brainstorming und Sammeln von Stichpunkten für einen späteren detaillierteren Beitrag geht, würde ich dir empfehlen eine bei dir lokal vorhandene Textverarbeitungssoftware zu verwenden. Solche Pauschal-Aussagen wie da ganz oben halte ich für wenig fundiert und schnell irreführend für jemanden, der die Qual der Wahl hat. Ich denke, dass du das nachvollziehen kannst.

Die Punkte werden in den 30 Seiten Text vorher begründet.
War das Sarkasmus oder fehlt mir irgendwas, sehe ich irgendwas nicht, was tatsächlich da irgendwo sein sollte?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »BlueCobold« (02.12.2015, 19:34)


6

02.12.2015, 23:53

Ich fände für den "Vergleich" relevant zu Wissen für welches Problem du eine Datenbank brauchst und was du dir überlegt hast, da MySQL eben auf SQL basiert und MongoDB auf NoSQL setzt.

Daher ist eine "Grundlose" gegenüberstellung im Sinne von "was ist allgemein" besser eher nicht passend (meiner Meinung nach).

Sorry für mein mieses Deutsch - in meinem Kopf macht das alles Sinn :D...

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

7

03.12.2015, 08:08

Ja um einen allgemeinen Vergleich gehts auch nicht. Ich dachte ich könnte noch mehr Aspekte gebrauchen die man vergleichen kann.
Aber ist okay, das bringt hier nichts. Die ganze Arbeit kann und möchte ich euch auch nicht geben.

8

07.12.2015, 13:50

Ich glaube, die Diskussion kam in einem anderen Thread schon mal auf - und eventuell warst das sogar du, der die NoSQL-DB mit eingebracht hatte?
Sorry Leute, aber ich halte den Vergleich mit der Einfachheit der Modellierung und des Mappings für kompletten Unsinn.

Nur, weil ich die DB mit allem Bewerfen kann ist es nicht einfacher, sondern eher noch schwieriger, behaupte ich.
Angenommen, meine Programmlogik erwartet eine gewisse Datenstruktur - nun muss ich mir Gedanken darum machen, dass ich während der Implementierung irgendwann mal das Modell erweitert habe und muss mich im Nachgang darum kümmern, dass noch irgendwelche Datenleichen rumliegen, die eine andere Struktur haben.

Danke, aber nein, danke! Dann lieber eine sauber modellierte relationale DB, wo die Struktur schon klar ist und ich die Daten sauber migrieren kann.

Ok, hört sich jetzt an, als ob ich Relationale DBs bevorzuge, das ist aber nicht so.
Es geht mir eher nur darum, dass die Vorteile des jeweiligen Systems davon abhängt, wo es besser eingesetzt werden sollte.

Wäre also sinnvoller, wenn du deine Pro-/Contraliste in einem Kontext für den gewünschten Anwendungsbereich setzen würdest.

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

9

07.12.2015, 14:13

Joa tue ich, eben auf meine Anwendung bezogen.
Nur bringt das auch nichts die jetzt hier zu zeigen, sonst kommen wieder ganz andere Disskussionen auf ;)

Wie auch immer, danke für dein Feedback. Das ein festes Schema eben sicherer ist habe ich schon drin.

10

07.12.2015, 14:54

Joa tue ich, eben auf meine Anwendung bezogen.
Nur bringt das auch nichts die jetzt hier zu zeigen, sonst kommen wieder ganz andere Disskussionen auf ;)

Wie auch immer, danke für dein Feedback. Das ein festes Schema eben sicherer ist habe ich schon drin.


Ich finde du solltest dich einfach trauen das hier zu posten/schreiben. Am besten auch mit dem Vermerk, dass all diejenigen, welche etwas zu deiner Idee und nicht zur Datenbank-Auswahl zu sagen haben, besser den Rand halten :D

Werbeanzeige