MySQL und mongoDB wann macht was Sinn?

OnDemand

Top Contributor
Hallo zusammen,
hab mir grad mal mongoDB angesehen und finde es wahnsinnig interessant!
Nun hab ich versucht herauszufinden wann SQL und wann NoSQL Sinn macht.

Nehmen wir einen Onlineshop mit 40.000 Artikeln, welche Varianten haben usw. hier sehe ich Vorteile beim Nutzen von NoSQL aufgrund komplexer Strukturen (Produkt hat Varianten mit Größen, Farben uvm)

wie sehr ihr das? Ernstzunehmende Datenbankstruktur oder moderne Spielerei?
habt ihr das produktiv im Einsatz? Über welche Probleme seid ihr gestolpert?
 

Thallius

Top Contributor
Gerade bei einem Shop sehe ich gar keinen Vorteil einer NoDB. Viel relationaler geht es wirklich nicht mehr. Vorteil der NoDB sehe ich bei sozial Media und allem was Dokumenten basiert ist
 

Dukel

Top Contributor
Mitlerweile gibts auch NoSQL in Relationalen Datenbanken. Manche DB haben einen JSON Datentyp und man kann z.B. Strukturierte und unstrukturierte Daten mischen.

EDIT:
Ach ja. Es ist unter umständen weniger der Typ der Applikation sondern auch die Entwicklung. Wenn Agil entwickelt wird ist NoSQL flexibler als klassische DB.
 

LimDul

Top Contributor
EDIT:
Ach ja. Es ist unter umständen weniger der Typ der Applikation sondern auch die Entwicklung. Wenn Agil entwickelt wird ist NoSQL flexibler als klassische DB.
Das wage ich mal dezent zu bezweifeln. Es sei denn man versteht unter Agil chaotisch :)

Am Ende sollte das Ziel immer sein etwas wartbares mit hohen Businesswert zu erhalten - egal ob nach Wasserfall, Agil oder Hybriden Ansätzen. Darunter zählt für mich ein vernünftiges Datenbank-Schema - egal ob relational oder nosql. Ich sehe da den Vorteil von NoSQL nicht.
 

OnDemand

Top Contributor
Hab mal ein wenig mit Mongo gespielt. Es ist mal wesentlich schneller, wenn ich meine 50.000 Dokumente in einer Collection speichere als wenn ich sie über mehrere Tabellen aufteile.

Mal schauen über welche Probleme ich noch so stolpern werde
 

LimDul

Top Contributor
Grundsätzlich kann das Sinn ergeben - allerdings sind in der Regel NoSQL Datenbanken wesentlich relaxter was Konsistenz & Garantien angeht. Wenn du das nicht brauchst, können die sinnvoll sein.

Es gibt halt die Eierlegende Wollmilchsau nicht, die
- Beliebig skaliert
- Schnell beim Einfügen ist
- Schnell beim Lesen ist
- Garantiert, dass die Daten konsistent sind
- Garantiert das Daten auf jeden Fall geschrieben werden beim Commit

An irgendwelche Stellen muss man Abstriche mache - und je nach dem wo, man die machen kann, ist eine SQL Datenbank oder eine NoSQL besser,

Schöner Text dazu: http://www.mongodb-is-web-scale.com/ :)
 

mrBrown

Super-Moderator
Mitarbeiter
Ich meine mich zu erinnern, dass @httpdigest mal was zu MongoDB in diesem Kontext gesagt hatte


Dokumenten-basierte Datenbanken können für Produktkataloge super geeignet sein (DynamoDB ist zB genau daraus entstanden). Mit den Nachteilen gegenüber klassischen relationalen Datenbanken kann man dabei meist gut leben (bzw sind es u.U. nicht mal Nachteile, sondern einfach irrelevant - zB kann eventually consistency bei einem reinen Produktkatalog, der ein reelles Lager abbildet, egal sein).
Man muss halt immer Vor- und Nachteile gegeneinander abwägen.
 

OnDemand

Top Contributor
Es eignet sich recht gut bisher beim rumspielen. Mongo/NoSQL liest sich aber eher als Cloud-DB mit Clustern. Vermutlich kann es erst dann so richtig seine Vorteile ausspielen. Hab es mal auf meiner Debian Kiste installiert, da fehlen mir dann aber Tools wie das pendant PhpMyAdmin. Gibt zwar massig Clients aber diese gehen dann nur wenn man den Port aufmacht etc. Lieber wäre mir etwas "geschlossenes" damit man es selber hosten kann. Die ganzen Cloudlösungen sind entweder übelst undurchsitig oder teuer. Da geht jede Menge Zeit flöten AWS und co erstmal zu kapieren
 

mrBrown

Super-Moderator
Mitarbeiter
MongoDB kann man völlig problemlos lokal installieren (und eigentlich alle anderen auch). Cloud-Lösungen muss man da genausowenig nutzen wie man sie bei relationalen DBs nutzen muss.

Alternative zu phpMyAdmin wäre zB Compass, das lässt sich auch über ssh tunneln. Ist dann gleichzieht auch sicherer als phpMyAdmin nur mit Passwort...
 

OnDemand

Top Contributor
Bin grad mit Datagrip am versuchen zu verbinden. Aber SSH Tunnel klingt noch besser. Hast du Mongo schon mal lokal installiert? Gibts irgendwelche OS Präferenzen? Debian X, Ubuntu usw
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
Juelin MySQL Datenbankmit glassfish und Netbeans Datenbankprogrammierung 18
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
M MySQL Datenbank in Array Datenbankprogrammierung 2
P MySQL- Neues Passwort Datenbankprogrammierung 1
btwX28 mysql abfrage über phpmyadmin Datenbankprogrammierung 8
sserio SQL oder MySQL Datenbankprogrammierung 44
OnDemand Mysql Query Builder Datenbankprogrammierung 1
Z MySQL "Too many connections" auch nach schliessen der Connections. Datenbankprogrammierung 10
yakazuqi MySQL MySQL Connection reset Datenbankprogrammierung 7
OnDemand MySql Foreign Key nötig oder unnötig Datenbankprogrammierung 3
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
D MYSQL goorm IDE - Wie speichern? Datenbankprogrammierung 0
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
D MySQL Geburtsdatum per KW abfragen Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
J MySQL - Primary Key Date,Time vs ID Datenbankprogrammierung 16
ruutaiokwu MySQL: Messwerte, welche stagnieren interpolieren? Datenbankprogrammierung 2
S Datenbank MySQL und Java Datenbankprogrammierung 8
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
D MySQL Abfrage Datenbankprogrammierung 5
D MySQL Abfrage sortieren Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
J MySQL MySQL Risiken bei Stromausfall minimieren Datenbankprogrammierung 9
D MySQL Abfrage SUM datediff Datenbankprogrammierung 3
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
D MySQL Connection richtig herstellen. Wie ? Datenbankprogrammierung 7
D Multiple Connection mit MySQL Datenbankprogrammierung 4
D MySQL Eibinden des "mysql-connector" in eine fertige Jar Datenbankprogrammierung 3
L MySQL Android zu externer MySQL Datenbank verbinden Datenbankprogrammierung 5
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
D MySQL Zeilen kumulieren Datenbankprogrammierung 8
D MySQL Abfrage mit kumulierten Werten Datenbankprogrammierung 16
K Servlet-MySQL DB Datenbankprogrammierung 2
X MySQL Json String in MySQL einfügen. Datenbankprogrammierung 20
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
D Datumsformat aus MySQL ändern Datenbankprogrammierung 15
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
K MySQL LAN-MySQL Server mit XAMPP Datenbankprogrammierung 2
R ERModel der Datebanken (ORACLE,MySQL,MS-SQL usw) Datenbankprogrammierung 4
X MySQL In MySQL Funktionen erstellen, wenn Zelle leer dann andere Zelle ändern? Datenbankprogrammierung 9
K Anfängerfrage CSV in MySQL Datenbankprogrammierung 41
I MySQL Wert nachträglich bearbeiten Datenbankprogrammierung 1
N MySQL Datenbank lokal Datenbankprogrammierung 3
B MySQL: Port ändern über GUI? Wo und wie Port ändern? Datenbankprogrammierung 0
B MySQL installieren - silent / User anlegen Datenbankprogrammierung 3
X MySQL Verbindungdsaufbau MySql auf Ubuntu-Server Datenbankprogrammierung 10
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
P MySQL JPA / MySQL - Fehler bei type=innoDB Datenbankprogrammierung 8
M MySQL MySQL DATETIME-Import Datenbankprogrammierung 9
P MySQL Connection Global Datenbankprogrammierung 13
J mySQL- Java Application - Zugriff über Internet Datenbankprogrammierung 3
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
D JavaFX Anwendung zugriff auf MySQL DB. Datenbankprogrammierung 2
D MySQL Grundsätzliche Fragen zu MySQL Datenbankprogrammierung 3
B MySQL LogIn Daten im Code verstecken Datenbankprogrammierung 3
M MySQL-Syntax-Fehler Datenbankprogrammierung 1
M In MySql Datenbank schreiben Datenbankprogrammierung 6
D mySQL Timestamp in RegularTimePeriod bzw Second Datenbankprogrammierung 3
H SHOW Tables in Java/MySQL Datenbankprogrammierung 8
windl MySQL und HSQLDB Datenbankprogrammierung 4
S Anbindung zur mysql von mit Swing und AWT Datenbankprogrammierung 22
F MySQL+ Netbeans: Datenbanken mit Automatisch generierten Entity Classes get und set Datenbankprogrammierung 2
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
C MYSQL kann wert nicht eintragen Datenbankprogrammierung 3
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
F BPlaced MySql Datenbank ansprechen Datenbankprogrammierung 5
S MySQL MySQL will einfach nicht, bitte um Rat Datenbankprogrammierung 4
M MySQL Datenbank durchsuchen Datenbankprogrammierung 5
Z MySQL mysql Facharbeit: Tipps und Ideen gesucht Datenbankprogrammierung 5
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
K MySQL Datenbank 2facher Zugriff Datenbankprogrammierung 1
Z MySQL Shopsystem mit mysql und Java Datenbankprogrammierung 8
S [MySQL] Topliste Datenbankprogrammierung 2
H Datenbank-Anbindung Java/MySQL Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
J Dateien in MySQL speichern & indizieren Datenbankprogrammierung 2
B MySQL MySQL-Abfrage von aufsummierter Zeit Datenbankprogrammierung 3
K MySQL Datenbankbackups Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
kaoZ HyperSQL vs. MYSQL Datenbankprogrammierung 4
L JSONArray/JSONObject MySQL-Servlet Abfrage Datenbankprogrammierung 2
V Internationalization mit MySql Datenbankprogrammierung 1
K Adressverwaltung mit MySql und Java? Datenbankprogrammierung 11
M Java Mysql verbinden Datenbankprogrammierung 3
L Zugriff auf lokal gespeicherte mySQL Datenbank Datenbankprogrammierung 3
L MySQL App/Java Zugriff auf Mysql-DB funktioniert nicht Datenbankprogrammierung 1

Ähnliche Java Themen

Neue Themen


Oben