MySQL-Datenbank: So unsichtbar, so wichtig

Wenn es eine Änderung an der PHP-Version gibt, werden Webseitenbetreiber sehr hellhörig. Doch das sollte auch bei MySQL so sein. Neue Funktionen kommen hinzu, alte Funktionen und Befehle verschwinden. Man muss sich anpassen. Auch bei goneo steht bald eine wichtige Änderung bevor.

Über die Jahre haben wir uns an die MySQL-Datenbank gewöhnt, die zuverlässig und ruhig um Hintergrund vor sich hinwerkelte, ohne die aber eine Webanwendung wie WordPress oder Drupal nicht funtkionieren würde.

Auch Matomo, das Open Source Webanalysetool, schreibt die Analysedaten in eine MySQL-Datenbank.

MySQL gehört bei goneo seit jeher zur Standardausstattung in nahezu jedem Webhostingpaket. Dabei hat auch MySQL eine wechselvolle Geschichte hinter sich. Die noch aktuelle Hauptversion mit der Nummer 5 stammt aus dem Jahre 2008. Zehn Jahre später, 2018, erschien MySQL 8 ohne dass man von MySQL 6 oder 7 gehört hätte.

Sanfte Übergänge

Die Übergänge von Release zu Release bei MySQL waren so sanft, dass bei Webanwendungen nur wenige Anpassungen nötig waren.

Der Lebenszyklus von MySQL 5.7 neigt sich nun zuende. Darauf reagiert auch goneo als Webhoster und stellt MySQL 8 bereit. Da einige ältere Webanwendungen noch Probleme mit MySQL 8 haben könnten, betreiben wir auch MySQL 5.7 noch eine Zeit lang weiter.

Hier berichten wir über einige Hintergründe.

Datenbanken werden gerne unterschätzt, denn man sieht sie nicht. Im Webhosting, das ja allgemein dafür verwendet wird, eine Website zu betreiben – aber auch bei der Entwicklung von Smartphone Apps – stehen oft zunächst die visuellen Aspekte im Vordergrund.

Unterschätzte Datenbanken

Eine Website lebt eben wie auch eine App auf dem Handy vom Aussehen, von der Ästhetik und der Usability, was einen guten Teil der Nutzererfahrung (User Experience) ausmacht.

Datenbanken sieht der User/die Userin nicht. Sie arbeiten im Hintergrund als „calm technology„. Kein UX-Designer muss sich darum kümmern. Wenn es um die Umsetzung von neuen Bedienkonzepten oder der Gestaltung an sich geht, nimmt man eher Frontend-Technologien in den Blick, so etwas wie JavaScript-Bibliotheken oder Frameworks.

Wichtige Webinhalte liegen in Form von Bildern, Animationsvideos oder Sounddatei auf dem Webspace. Doch viele textliche oder numerische Informationen speichert man in strukturierter Form ab – eben in einer Datenbank. Die Datenbank kann man sich als eine Sammlung von Tabellen vorstellen, die vom User/von der Userin definiert werden.

Relationale Datenbank im „Tabellenformat“

So lassen sich die Spalten benennen und es lässt sich festlegen, was in den Spalten gespeichert wird, also Text, Zahlen oder andere Formate.

In diese Tabellen können von Programmen oder Skripten Einträge geschrieben und Informationen ausgelesen werden.

Seit Anbeginn, also seit 2006, setzte goneo auf MySQL als Datenbanktechnologie und auf PHP als zukunftsorientierte Skriptsprache. MySQL war damals (so wie es auch heute noch der Fall ist) ein quelloffenes Projekt, also Open Source, auch wenn es nicht wie in solchen Szenarien oft, von Freiwilligen programmiert wurde. Da waren festangestellte Programmierer am Werk.

Mit der steigenden Popularität von PHP als Skriptsprache wurden einst statische Websites dynamischer. Und das war der große Wurf, der mit „Web 2.0“ ein eigenes Label bekam.

Die einzelne Webseite war nicht mehr als fertiges HTML-Dokument auf dem Serververzeichnis abgelegt und so fix und fertig zum Abruf bereit.

Stattdessen konnten viele Teile des Inhalts oder die ganze Einzelseite an sich dank PHP vom Server beim Aufruf schnell zusammengebaut werden.

Dynamische Websites mit PHP und MySQL

Dafür brauchte man auch eine Möglichkeit, Inhalte so abzulegen, dass sie sehr schnell zugänglich waren und auch ohne Administratoreingriff verändert werden können.

MySQL ist eine Umsetzung von SQL, der „Structured Query Language“ als Nachfolgeprojekt von SEQUEL, der „Structured English Query Language“.

MySQL entstand interessanterweise in Schweden und hat sowohl als Softwareprojekt als auch als Unternehmen eine recht wechselvolle Geschichte hinter sich: Die ursprüngliche Entwicklerfirma MySQL AB ging zunächst nach Milliardendeals in Sun Microsystems und später in Oracle auf.

💡 Erfahre mehr über den Wechsel zu MySQL 8 bei goneo
https://www.goneo.de/blog/mysql-8-bei-goneo/

Forks wie MariaDB

Während verschiedener Phasen entstanden einige Forks wie Maria DB. Der Grund dafür war, dass in der Open Source Community einige Zweifel an der Zukunft von MySQL als quelloffenes Projekt stellten.

Inzwischen hat sich abgezeichnet, dass MySQL auch für die Communityvariante Unterstützung erhält, was das Vertrauen in die Zukunftsfähigkeit von MySQL gestärkt hat. Der aktuelle Claim der deutschen Version von der offiziellen Website MySQL.com ist „Die populärste Open-Source-Datenbank der Welt“. Das ist sicher nicht übertrieben, wie unabhängige Statistiken zeigen: https://db-engines.com/en/ranking

Die Geschichte von MySQL

Die wechselvolle Geschichte spiegelt sich auch in der Versionsnummerierung der Releases wider: Das heute noch gebräuchliche MySQL 5 erschien im November 2008 als MySQL 5.1. Die höchste Releasenummer unter 5 ist 5.7, was auch aktuell hier bei goneo noch vorherrschend ist.

Seit April 2018 gibt es MySQL 8. Wo sind, so fragt man sich MySQL 6 und 7?

Wo sind MySQL 6 und 7?

MySQL 6 war tatsächlich geplant und existierte zumindest als Alphhaversion. Allerdings kam in dieser Phase die Übernahme durch Sun dazwischen. Das hat die Produktpolitik verändert.

Zudem eignete sich dieses MySQL 6 (wie auch 5.1) nicht gut für Data Warehousing, also den Aufbau großer Datensammlungen zwecks Datenspeicherung.

Die Zeit für auf mehrere Server verteilte Datenbanken war gekommen. Zugleich wurde es notwendig, die Datenbankanfragearbeit auf mehrere CPU-Kerne verteilen zu können. Es entstand ein kommerzielles Produkt namens MySQL Cluster, das die Versionsnummer 6 und 7 nutzte. https://opensource.com/article/17/2/mysql-8-coming

Neue Konzepte, nicht nur relationale Algebra

Schon seit 2018 also existiert MySQL 8 auch als Communityversion. Entwickler freuten sich.

https://modern-sql.com/de/blog/2018-04/mysql-8.0

MySQL 8 hat mit einigen Paradigmen gebrochen. MySQL ist ein relationales Datenbanksystem, folgt aber nicht mehr nur den Modellen relationaler Algebra: https://modern-sql.com/de/blog/2018-04/mysql-8.0 .

Nach unserer Beobachtung kommen Konzepte wie Key/Value-Zugriff in populären Open-Source-Webanwendungen wenig zum Einsatz.

Die Magie bei MySQL und SQL im Allgemeinen: Datensätze werden gegebenenfalls unter Angabe von Bedingungen miteinander verknüpft, indem man Bezugskriterien definiert.

Im weiten WordPress-Ökosystem findet man aber durchaus Plugins, die recht eigenwillig Werte in der normalen WordPress-Datenbank ablegen, um frontendmäßige Interaktionen im Theme zu realisieren. Key/Value wäre da wohl durchaus praktisch.

Was Webhosting von MySQL braucht – und was nicht

Daher darf man vermuten, dass auch im Webumfeld der Bedarf dahingehend steigt. Im Grunde speichern Content Management Systeme für Webseiten hauptsächlich Text und die Bezüge zu Webdokumenten in der MySQL Datenbank. Abfrage- und Abspeichervorgänge sind zahlreich, parallel und müssen sehr schnell von statten gehen.

Alles in allem ist das World Wide Web vor allem ein Textmedium, ergänzt um Bilder und vielleicht ein bisschen Video. Medienplattformen à la Youtube oder Social Media Plattformen wie Mastodon sind schon etwas Spezielles, was die Sphäre Webhosting klar verlässt.

Auch um Datalakes, Datenanalysen mit Maschinenlern-Algos geht es im Webumfeld nicht, und wenn dann eher modellhaft und zu Demozwecken.

Das Ende von MySQL 5.7 naht

Die aktuelle Versionsnummer ist MySQL 8. Das Ende der Unterstützung für MySQL 5.7 ist für 13.Oktober 2023 angekündigt. Darauf wird sich auch goneo einstellen.
So wollen wir vorgehen: Zunächst wird die Standardversion bei goneo MySQL 8.0 sein.

Allerdings sind in diesen Release im Vergleich zu MySQL 5.7, was derzeit noch der Datenbankstandrad bei goneo ist, einige Funktionalitäten geändert worden. Daher muss man damit rechnen, dass ältere Standard-Webanwendungen nicht mehr mit MySQL 8 ohne weitere Maßnahmen zusammenarbeiten.

Aus diesem Grund wird goneo die Version MySQL 5.7 noch weiter betreiben. Als Betreiber einer Webanwendung muss man lediglich eine Änderung in der Konfiguration vornehmen. Wie dies aussehen sollte, darüber werden wir in Kürze an dieser Stelle berichten.

Eine Antwort auf „MySQL-Datenbank: So unsichtbar, so wichtig“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.