Was ist MySql und wie speichert es Daten?

Autor: Veröffentlicht

Kurz gesagt: MySQL ist ein relationales Datenbankmanagementsystem, also eine Software, die strukturierte Informationen speichert und das Lesen und Ändern dieser Daten ermöglicht. Websites, Onlineshops und Anwendungen nutzen es beispielsweise, um Beiträge, Benutzerkonten oder Bestellungen zu speichern. MySQL ist keine Programmiersprache: Für die Arbeit mit Daten verwendet es vor allem die Sprache SQL.

Wie speichert MySQL Daten?

Eine relationale Datenbank organisiert Informationen in Tabellen. Jede Tabelle hat Spalten, die die Art der Daten festlegen, und Zeilen, die einzelne Datensätze darstellen, etwa Kunden. Über Kennungen lassen sich Tabellen miteinander verknüpfen, statt dieselben Informationen mehrfach zu speichern.

In einem Onlineshop kann die Tabelle kunden eine Kennung, einen Vornamen und eine E-Mail-Adresse enthalten. Die Tabelle bestellungen speichert die Bestellnummer, den Betrag und die Kundenkennung. Durch diese Verknüpfung lassen sich alle Bestellungen einer Person finden, ohne ihre Daten in jeden Datensatz zu kopieren.

MySQL speichert nicht nur Daten. Es verwaltet auch Zugriffsrechte, ermöglicht die gleichzeitige Arbeit mehrerer Benutzer und führt Abfragen aus, also Befehle, die Daten abrufen oder ändern. Indizes – zusätzliche Strukturen, vergleichbar mit dem Register eines Buches – können die Suche beschleunigen, ohne dass die gesamte Tabelle durchsucht werden muss.

Wie unterscheidet sich MySQL von SQL und anderen Datenbanken?

SQL ist eine Sprache für Befehle, und MySQL ist ein Programm, das diese ausführt. SQL dient unter anderem dazu, Tabellen zu erstellen, Datensätze hinzuzufügen und Informationen auszuwählen, die bestimmte Bedingungen erfüllen. Auch andere Datenbanksysteme verwenden diese Sprache, wobei sich Details der Syntax und verfügbare Funktionen unterscheiden können.

Eine Beispielabfrage für die Kundentabelle sieht so aus:

SELECT vorname, email
FROM kunden
WHERE stadt = 'Kraków';

Der Befehl liest die Vornamen und E-Mail-Adressen der Kunden aus, bei denen im Feld stadt Kraków eingetragen ist. Er verändert keine Daten. Auf einer typischen Website führt der Anwendungscode solche Abfragen aus; der Websitebetreiber muss sie also nicht von Hand eingeben.

MySQL wird gelegentlich mit MariaDB verwechselt. Es sind eigenständige Systeme mit gemeinsamen Wurzeln, die in vielen Anwendungsfällen kompatibel, aber nicht identisch sind. Bevor du eines durch das andere ersetzt, solltest du die Anforderungen der Anwendung und die Kompatibilität der jeweiligen Versionen prüfen. PostgreSQL ist ein weiteres eigenständiges System. SQLite hingegen arbeitet üblicherweise als Bibliothek mit einer lokalen Datei, ohne einen separaten Datenbankserver.

Wozu dient MySQL auf einer Website?

MySQL bildet häufig die Datenbasis eines CMS, also eines Content-Management-Systems. Ein Beispiel ist WordPress, das MySQL oder MariaDB verwenden kann. In der Datenbank speichert es unter anderem die Inhalte von Beiträgen, Einstellungen, Kommentare und Benutzerinformationen.

Eine Datenbank ist jedoch weder dasselbe wie Hosting noch eine vollständige Website. Hosting stellt die Umgebung bereit, in der die Website läuft; MySQL ist einer der dort verfügbaren Dienste. Anwendungscode, Themes und hochgeladene Bilder liegen üblicherweise in Dateien, wobei die Datenbank Informationen zu deren Speicherort enthalten kann.

Wenn jemand einen Blogbeitrag öffnet, ruft die Anwendung dessen Inhalt aus der Datenbank ab und bereitet die Seite für den Browser auf. Ein Cache kann die Anzahl solcher Lesezugriffe verringern. Der Browser selbst verbindet sich normalerweise nicht direkt mit MySQL – das übernimmt die Anwendung auf dem Server.

Nicht jede Website benötigt eine Datenbank. Eine einfache Website aus fertigen HTML-Dateien kann ohne MySQL funktionieren. Eine Datenbank wird nützlich, wenn Informationen regelmäßig bearbeitet, gefiltert oder von Benutzern gespeichert werden sollen.

Ist MySQL kostenlos und wie fängt man an?

MySQL Community Edition ist unter den Bedingungen der GPL-Lizenz ohne Lizenzgebühr verfügbar. Daneben gibt es kommerzielle MySQL-Angebote. Dass für diese Edition keine Lizenzgebühr anfällt, bedeutet jedoch nicht, dass der Betrieb kostenlos ist: Für Server, Administration, Backups oder einen verwalteten Dienst können weiterhin Kosten entstehen.

Bei einer üblichen Einrichtung von WordPress auf Shared Hosting musst du MySQL normalerweise nicht selbst installieren. Ein automatischer Installer kann die Datenbank und die Verbindung einrichten. Bei einer manuellen Einrichtung sind meist folgende Schritte nötig:

  1. Eine Datenbank im Hosting-Verwaltungsbereich erstellen.
  2. Einen Datenbankbenutzer erstellen und ihm die erforderlichen Rechte zuweisen.
  3. Im Installer der Anwendung den Datenbanknamen, den Benutzernamen, das Passwort und die Adresse des Datenbankservers angeben.
  4. Die Funktion der Website und das Verfahren zur Erstellung von Backups prüfen.

Zum Anzeigen von Tabellen und Ausführen von Abfragen wird häufig phpMyAdmin verwendet – eine Verwaltungsoberfläche, nicht die Datenbank selbst. Änderungen darin können sich unmittelbar auf die Website auswirken. Erstelle vor einer manuellen Bearbeitung der Daten ein Backup, das du auch wiederherstellen kannst.

Was solltest du bei Hosting mit MySQL prüfen?

Die Angabe „MySQL-Unterstützung“ allein reicht nicht aus, um ein Angebot zu beurteilen. Prüfe in der Dokumentation deiner Anwendung, welche Versionen sie benötigt, und lass dir vom Hosting-Anbieter bestätigen, welches System er tatsächlich bereitstellt und in welcher Version. Frage auch nach den Obergrenzen für Datenbankgröße und gleichzeitige Verbindungen sowie nach der Möglichkeit, Daten zu exportieren.

Wichtig sind die Bedingungen für Backups: Häufigkeit, Aufbewahrungsdauer und Wiederherstellungsverfahren. Ein Backup nur der WordPress-Dateien enthält nicht die in der Datenbank gespeicherten Inhalte. Umgekehrt ersetzt ein Backup allein der Datenbank keine Sicherung der Bilder und übrigen Website-Dateien.

Die Sicherheit hängt auch von der Anwendung ab. Sie sollte parametrisierte Abfragen verwenden, die Benutzerdaten von SQL-Befehlen trennen und helfen, das Einschleusen schädlicher Anweisungen zu verhindern. Datenbank-Zugangsdaten dürfen weder im öffentlich zugänglichen Code der Website noch in einem öffentlichen Repository landen.

Wenn du ein fertiges CMS einrichtest, prüfe zunächst dessen Anforderungen und ob dein Hosting die Wiederherstellung von Backups ermöglicht. SQL kannst du später lernen; eine funktionierende Verbindung und die Möglichkeit, Daten wiederherzustellen, brauchst du von Anfang an.

Siehe auch: Was ist 2FA?

Lesen Sie auch

Wie PHP-FPM PHP-Anfragen verarbeitet, sich vom Webserver unterscheidet und wie du Prozesse an Last und Hosting-Ressourcen anpasst.
BIND ist offene DNS-Serversoftware. Erfahre, welche Aufgaben sie übernimmt und wann sich der Betrieb eines eigenen Servers lohnt.
Was Polens REGON-Register und seine Kennnummer bedeuten, wie sie sich von NIP und KRS unterscheiden und wie Sie Unternehmensdaten prüfen.