Anfängerfrage: Welche Datenbank? Pro/Contra?

mr44er

moderater Moderator
Teammitglied
Mal stumpf in die Runde gefragt: Gibts großartige Unterschiede bei den Datenbanken? Lies: für mich relevante?

Ich bin gerade am Apache aufbauen mit PHP und Gedöhns zwecks Lernen und das soll später mal produktiv sein. Erstmal soll das wordpress und nextcloud werden, die hab ich bisher nur mit mysql auf nem Hostingpaket betrieben. Mit mysql kenne ich mich also rudimentär aus.

Welchen Nutzen könnte ich ziehen, wenn ich das je nach Unterstützung mit postgre oder mariadb betreibe, ich hab da nämlich gar keine Ahnung von. :p
 
Datenbanken sind ein weites Thema. Ich würde das schon gerne eingrenzen. Gut für Apache mit php ist schon ein Datenbankserver erforderlich. Muß es denn immer gleich eine serverbasierte Lösung sein? Es gibt ja auch dateibasierte lokale Datenbanken wie sqlite, was für normale Zwecke doch völlig ausreicht. Und dafür gibt es auch eine GUI, nämlich den Sqlitebrowser, der ziemlich brauchbar ist. Die meiste Erfahrung habe ich mit Postgresql, da gibt es Pgadmin als GUI zum administrieren. Wenn Du den Grundvorrat an SQL beherrscht, kannst Du jede SQL Datenbank administrieren, weil SQL zumindest größtenteils genormt ist. Für kleinere Aufgaben kann auch das Datenbankmodul lobase von libroffice gute Dienste leisten. Da gibt es die eingebaute Java Datenbank HSQLDB oder die altbewährte lokale in die Jahre gekommene Datenbank dBase oder natürlich kann auch Mariadb oder postgresql wenn installiert, connected werden. In Zukunft soll wohl firebird HSQLDB ablösen als Standarddatenbank in libreoffice. Unter Libreoffice lassen sich komfortable EIngabemasken oder Abfragen erstellen.
So nun hast Du eine kleine Übersicht aus meiner Sicht. Natürlich kommt es auch darauf an, was Du eigentlich machen willst und welche Datenmengen verarbeitet werden müssen.

Viel Erfolg! :)
 
Meine 2cc:
Mit mysql/mariadb: Lernkurve ziemlich flach, man kommt schnell zu guten Ergebnissen, alles Easy.

Postgres: hab öfter versucht, reinzufinden, gefühlt musste ich 'mehr am Ball bleiben' um 'auf was zu kommen' (vgl mit mysql, aber ich denke du weißt, was ich meine), aber db Rock-solid, eigentlich nur durch eigene Dummheit kaputtbar - bei mysql hatte ich einmal ne unlesbare db, könnte aber auch die SCSI-(*hust*)Platte gewesen sein, die starb nämlich kurz darauf...

Mein aktueller Brötchengeber setzt auch auf mysql - der Einfachheit halber ...
 
Für private Spielerein genügt sicher mysql/mariadb oder gar sqlite.
Solltest du wirklich großere Projekte mit mehreren GB Daten und hunderten Zugriffen / Min hast, solltest du dich Richtung Postgres orientieren.
Bei allen Datenbanken gilt: Je nach Anwendungsfall kann man sehr viel rausholen, wenn man entsprechend die Einstellungen tuned.
 
Ich hab jetzt mal mariadb draufgeklatscht, in der Tat simpel, gefällt mir.
Die 'Spielereien' gehen eher in Richtung Apache, wordpress und nextcloud. -> Die beiden setzen eine db eben voraus. Ich muss da nur grob wissen, wie ich das absichere (kein remote-login, langes PW), Nutzer und DB anlegen und ab und an mal einen dump zwecks Sicherung fahren. Ansonsten habe ich da keine Anforderung.

großere Projekte mit mehreren GB Daten und hunderten Zugriffen
Bezieht sich das nur auf die reine Datenbankgröße oder insgesamt auch darauf, wie groß z.B. der Bilderordner in wordpress oder die vorgehaltenen Dateien in nextcloud sind?
 
Oftmals hast du gar keine andere Wahl als MySQL/MariaDB zu nehmen in dem Fall. WordPress z.B. unterstützt offiziell nur MySQL/MariaDB soweit ich weiß.

Ansonsten setze ich aktuell bei allem was ich so mache auf PostgreSQL. Im Gegensatz zu MySQL hat sie mir noch keine Daten geschreddert und es hat auch mehr Features aus Entwicklersicht. PostgreSQL hat z.B. eine eigene Skriptsprache für Stored Procedures. Aber als reiner Anwender fährst du vermutlich mit MySQL/MariaDB besser, weil das das ist, was die Meisten nutzen.
 
Oftmals hast du gar keine andere Wahl als MySQL/MariaDB zu nehmen in dem Fall. WordPress z.B. unterstützt offiziell nur MySQL/MariaDB

So ist es. Und wenn ich dann mehrere solcher Dingens (Wie nennt man das? Webapplikationen?) hosten möchte, find ich pro Dingen eine db unnützer Aufwand.
Zerballert hatte ich auch noch nie eine db, von der Warte bin ich auch kein gebranntes Kind. Ich sag es selten, aber von einer db erwarte ich, dass sie einfach funktioniert. :)

Stored Procedures
Da weiß ich nichtmal, was das ist. :p
 
Zerballert hatte ich auch noch nie eine db, von der Warte bin ich auch kein gebranntes Kind. Ich sag es selten, aber von einer db erwarte ich, dass sie einfach funktioniert. :)
Dann will ich Dir diesen Glauben nicht nehmen.;) Beruflich habe ich früher mit RDBMS (relationale Datenbankmanagementsysteme) zu tun gehabt. Seit dem sind natürlich viele Jahre vergangen und sie wurden immer weiter entwickelt und damit auch komplexer. Aber in den Grundzügen arbeiten sie methodisch immer noch nach den gleichen Schemata.

MariaDB ist ja ein Fork von MySQL vom ursprünglichen Entwicker, daher dürfte ein großer Teil der Dokumentation deckungsgleich sein. Die großen Systeme sind alle gut dokumentiert.

Da weiß ich nichtmal, was das ist.

Mit Hilfe von Stored Procedures ist es dem Benutzer eines Datenbank-Management-Systems (DBMS) möglich, komplexe Folgen von SQL-Anweisungen im System unter einem Namen zu speichern und jederzeit auszuführen. Das ist bei größeren Projekten sehr hilfreich. Oder willst Du gar immer wieder benutzte SQL Befehlsketten auf einer Konsole eintippen? Überhaupt ist die Administration einer Datenbank grundsätzlich über die Konsole möglich, aber nicht wirklich empfehlenswert. Deshalb ist auch eine GUI (kann auch ein Webinterface sein) für die Verwaltung und Administration der Datenbank sehr wichtig. Und natürlich darfst Du einiges lernen (SQL sowieso), denn wenn Du das nicht beherrscht, dann bekommst Du auch nicht die Ergebnisse und Auswertungen, die ja letztendlich wünschenswert für Deine zukünftigen Projekte sind. Ich würde mal mit Tante Google nach HoTo's über RDBMS suchen und mich dann Schritt für Schritt einarbeiten. Für MariaDB gibt es auch phpMyAdmin, ein Webinterface, mit dem Du auch mal lokal üben kannst, vorausgesetzt, Du hast unter FreeBSD den apache24 und php_mod71 installiert. Auch solche Features wie Volltextsuche finde ich überaus interessant, aber das dürften sie mittlerweile alle können.

have fun :)

PS: Ich sehe gerade, das Du den Turbo eingeschaltet hast und schon weiter bist .... während ich hier antwortete ....
 
Seit dem sind natürlich viele Jahre vergangen und sie wurden immer weiter entwickelt und damit auch komplexer.

Bin da nie so drüber gestolpert, dass ich damit was machen musste. Maximal wurde was gehostet...überall taucht 'mysql' auf und wird unterstützt. Mehr wars einfach nie...halt stopp...doch. Jemand hatte eine MS-Access-DB in einer Datei. Die wurde mehrfach gesichert, das wars dann aber auch. :D

MariaDB ist ja ein Fork von MySQL vom ursprünglichen Entwicker, daher dürfte ein großer Teil der Dokumentation deckungsgleich sein.
Ja, das hab ich in der Zwischenzeit gelesen. Die Namen der Töchter des Entwicklers. Dann noch irgendwas mit oracle näher bei mysql und daher weiter weg von opensource. Aber beide kompatibel untereinander und phpmyadmin ebenfalls. Das ist gut, das kenne ich auch.
 
Ich hätte ja sonst noch in die Runde geworfen, ob ein relationelles Datenbanksystem überhaupt die richtige Wahl ist. Da es aber um die Nutzung vorhandener Applikationen geht, grenzt das die Möglichkeiten ja automatisch auf 2 oder maximal 3 DB-Systeme ein.
 
Da es aber um die Nutzung vorhandener Applikationen geht, grenzt das die Möglichkeiten ja automatisch auf 2 oder maximal 3 DB-Systeme ein.

Jep. Ich kann nichts negatives über mysql sagen, die jeweilige Anwendung hat es in der Vergangenheit gebraucht, bekommen und somit war der Drops gelutscht. 'Not', was anderes zu benutzen hab ich nicht und ich hätt gestern auch einfach mysql installieren können.
Von anderen Systemen hab ich immer mal was gehört/gelesen, aber einfach keine Ahnung davon und da ich im Moment eh am Basteln bin, dacht ich mir, dass man ja mal über den Tellerrand schauen könnte. :)
 
....

Bezieht sich das nur auf die reine Datenbankgröße oder insgesamt auch darauf, wie groß z.B. der Bilderordner in wordpress oder die vorgehaltenen Dateien in nextcloud sind?

Reine DB größe, wobei halt auch der Usecase wichtig ist. Wenn du nur Reinballerst und fast nie liest oder suchst ists auch egal.
 
Wenn du nur Reinballerst und fast nie liest oder suchst ists auch egal.
Ok. Ich werd ja dann erstmal sehen, wie schnell oder langsam das sein wird. Wenn man auf nem hostingpaket mit 20 anderen Kunden hockt, kann es prinzipiell nur schneller werden. Und wenn das immer noch zähflüssig sein sollte, kann man immer noch ne dickere Maschine nehmen oder die db wechseln oder uswusf.
Ist jetzt auch nicht so, dass ich von Stoßzeiten sprechen müsste oder Kapazitätsgrenzen, weil 50 Clients draufhängen.;)
 
dacht ich mir, dass man ja mal über den Tellerrand schauen könnte. :)
MySQL ist aber derartig Mainstream, dass das eher mitten auf dem Teller ist als am Rand des Tellers geschweige denn gar jenseits davon. :-)

Das ist so, als würde man sich Windows angucken um mal bei Betriebssystemen über den Tellerrand zu schauen. :-)

Ich kann nichts negatives über mysql sagen
MySQL ist sehr erfolgreich und ich konnte das nie verstehen. Ist nix Ganzes und nix Halbes. Wenn man was kleines braucht, tuts SQLite. Wenns größer sein soll PostgreSQL.

Ich glaube die sind vor allem deshalb erfolgreich geworden, weil sie jeder Feld-, Wald- und Wiesenhoster im Angebot hat(te).
 
Für private Spielerein genügt sicher mysql/mariadb oder gar sqlite.
Solltest du wirklich großere Projekte mit mehreren GB Daten und hunderten Zugriffen / Min hast, solltest du dich Richtung Postgres orientieren.
Bei allen Datenbanken gilt: Je nach Anwendungsfall kann man sehr viel rausholen, wenn man entsprechend die Einstellungen tuned.
Das kann ich so nicht unterschreiben, aber jeder hat da natürlich seine eigenen Erfahrungen. Privat bevorzuge ich auch Postgres, im Büro verwenden wir mehrere Perconaserver (MySQL Fork) und die beiden Datenbanken haben einige 100GB und teilweise weit mehr. Mit innodb geht das erstaunlich gut. Zugriffe liegen bei einigen k/sec (Webanwendung halt ;))
EDIT: Laufen leider nicht unter BSD, da Linux hier deutliche performance Vorteile hat. Kann man doof finden, aber ist leider so.
 
Ja FreeBSD braucht für den optimalen Datenbank-Betrieb noch ein bisschen sysctl und loader.conf tuning, weil diverse Werte (u.a. shared memory) recht klein gewählt sind. Das kann man aber in den entsprechenden Dokumentationen zu den Datenbanken nachlesen. Auf ZFS muss auch die recordsize und Co. ordentlich gesetzt sein.
 
Zurück
Oben