Weiter zu

MySQL-Umgebung

MySQL ist laut DB-Engines eine der beliebtesten Open-Source-Datenbanken weltweit. Die erste Version wurde 1995 veröffentlicht und seitdem wird es kontinuierlich weiterentwickelt, was es auch heute noch zu einer sehr beliebten relationalen Datenbank macht. MySQL verdankt seinen Erfolg einem Umfeld, das eine breite Palette von Open-Source- und kommerziellen Versionen umfasst. MySQL wird sowohl lokal als auch in der Cloud weit verbreitet. Große Cloud-Dienstanbieter für MySQL sind Google Cloud, Oracle, Amazon Web Services (AWS) und Microsoft Azure.

MySQL-Sorten

Auf dem heutigen Markt gibt es eine Vielzahl von MySQL-Sorten, die MySQL um Features für Optimierung, Skalierbarkeit, Clustering, Notfallwiederherstellung und mehr erweitern. Die beiden wichtigsten Datenbanken, die durch das Verzweigen von MySQL erstellt wurden und derzeit aktiv sind, sind MariaDB und Percona Server for MySQL.

MySQL Community Edition und Enterprise Edition

Oracle entwickelt und verwaltet sowohl die MySQL Community Edition als auch die Enterprise Edition. Die Enterprise Edition bietet technischen Support von Oracle und umfasst außerdem einige zusätzliche Features wie MySQL Enterprise Monitoring, PAM-Authentifizierung, erweiterte Sicherheit, verbesserte Leistung und Skalierbarkeit, Enterprise Backup, Enterprise-Audit, Enterprise Clusterverwaltung, Thread-Pooling und mehr.

MariaDB

Die Gründer von MySQL erstellten MariaDB mit der Garantie, dass es als Open Source verfügbar bleibt. Einige Features in MySQL wurden früher in MariaDB veröffentlicht als in MySQL, wie JSON-Unterstützung, Multi-Source-Replikation und parallele Thread-Replikation. Zu den wichtigsten Vorteilen von MariaDB im Vergleich zu MySQL gehören:

  • Einführung neuer Speicher-Engines wie ColumnStore für Analysen, S3-Engine zum Archivieren von Tabellen in AWS S3, Aria Engine, was eine optimierte Version von MyISAM ist, MyRocks für Anwendungen mit hoher Komprimierung und höherem Traffic, Cassandra, SphinxSE und mehr
  • Funktion der parallelen Ausführung von Abfragen
  • Thread-Pooling, das in MySQL Enterprise Edition, aber nicht in der Community Edition verfügbar ist
  • kostenloser Router namens MaxScale
  • Mehrfachlösung: Galera-Cluster

Percona

Ein Unternehmen namens Percona entwickelt und verwaltet Percona Server for MySQL. Im Laufe der Jahre hat Percona MySQL kontinuierlich optimiert, um den Dienst zu optimieren und neue Features einzuführen. Die wichtigsten Vorteile der Verwendung von Percona gegenüber MySQL sind: 

  • Verbesserte InnoDB-Volltextsuche, verbesserte Speicher-Engine und Leerungsmethode, mehr Hash-/Digest-Funktionen, Unterstützung von Verschlüsselung in InnoDB-Tabellenplatz, binäre Logs und temporäre Dateien
  • Einführung eines parallelen Double-Write-Zwischenspeichers zur Optimierung
  • ein XtraBackup-Tool für Hot Backups mit vollständigen und inkrementellen Sicherungsoptionen
  • Unterstützung für MyRocks- und Toku-Speicher-Engines
  • erweiterte Fehlerbehebungstools wie Zähler pro Tabelle, Index, Client, Nutzer und Thread-Leistung
  • PAM-Authentifizierung und Audit-Logging, die in der Enterprise Edition von MySQL, aber nicht in der Community Edition verfügbar sind
  • Pt-Toolkit, entwickelt von Percona, einem Dienstprogramm mit vielen Optionen zum Verwalten von MySQL

Für welche Sorte sollten Sie sich entscheiden?

Die Anforderungen einer Anwendung diktieren, welche Datenbank zu wählen ist, da verschiedene Datenbanken einzigartige Features haben, die auf bestimmte Anwendungsfälle abzielen. Wenn Ihre Anwendung beispielsweise Analysen benötigt, können Sie entweder Clickhouse in Percona oder Spaltenspeicher in MariaDB verwenden. In MySQL ist diese Option jedoch nicht verfügbar. Wenn Sie das Threadpool-Feature verwenden möchten, das in der Community-Version von MySQL nicht verfügbar ist, müssen Sie entweder Enterprise MySQL oder das Open-Source-Threadpool-Feature in Percona und MariaDB auswählen.

MySQL in der Cloud

Eine Cloud-Datenbank ist eine Datenbank, die in einer öffentlichen oder Hybrid-Cloud-Umgebung ausgeführt wird, um Daten in einer Organisation zu organisieren, zu speichern und zu verwalten. Cloud-Datenbanken können als verwaltete Database-as-a-Service (DBaaS) oder auf einer cloudbasierten virtuellen Maschine (VM) bereitgestellt und von einem internen IT-Team selbst verwaltet werden. Zu den wichtigsten Cloud-Anbietern für verwaltetes MySQL gehören:

Google Cloud

Google Cloud bietet sowohl eine von einer virtuellen Maschine gehosteten Version von MySQL, die ein Nutzer selbst verwalten muss, als auch Cloud SQL, ein vollständig verwaltetes Angebot, an.

Amazon Web Services (AWS)

Amazon Web Services (AWS) bietet eine VM-gehostete Option für MySQL und eine vollständig verwaltete Lösung in Form von RDS. AWS bietet auch Aurora an, ein mit MySQL kompatibles Angebot von MySQL mit zusätzlichen Features.

Azure SQL-Datenbank

Azure bietet zwei Bereitstellungsmodelle für MySQL, die denen anderer Cloud-Anbieter ähneln: eine Option für virtuelle Maschinen in Form von MySQL auf Azure-VMs und die vollständig verwaltete Version in Form von Azure Database for MySQL.

Oracle Cloud

Oracle bietet die Möglichkeit, MySQL auf seinen virtuellen Maschinen zu hosten. Außerdem wurde ein neues vollständig verwaltetes Angebot namens MySQL HeatWave Database Service entwickelt.

Digital Ocean

Digital Ocean kann auch MySQL auf seinen virtuellen Maschinen hosten. Außerdem bietet es eine vollständig verwaltete Hosting-Option für MySQL.

Hochverfügbarkeits- (HA) oder Clusterlösungen

Viele Unternehmen haben an der Erweiterung von MySQL gearbeitet und Produkte entwickelt, die Failover und Hochverfügbarkeit für die MySQL-Datenbank bieten. Einige davon sind direkte Tools, die mit MySQL verwendet werden, andere sind Änderungen am MySQL-Quellcode, die zur Erstellung separater Produkte führen, die Hochverfügbarkeits- oder Mehrfach-Cluster bieten. Zu den gängigen MySQL-Lösungen für Hochverfügbarkeit und Skalierbarkeit gehören:

  • Gruppenreplikation und InnoDB-Cluster von MySQL

Ein InnoDB-Cluster besteht aus mindestens drei MySQL Server-Instanzen und bietet Hochverfügbarkeits- und Skalierungsfunktionen. InnoDB-Cluster bestehen aus MySQL-Shell, MySQL-Router und MySQL-Servern mit Gruppenreplikation. Weitere Informationen dazu finden Sie hier.

Percona XtraDB Cluster ist eine synchrone Clustering-Lösung, die Hochverfügbarkeit, parallele Replikation und Skalierbarkeit bietet. Percona XtraDB Cluster enthält das ProxySQL-Administratortool, das Percona XtraDB-Clusterknoten mit ProxySQL automatisch konfiguriert. Weitere Informationen dazu finden Sie hier.

  • MariaDB Galera Cluster

MariaDB Galera Cluster ist ein praktisch synchroner, multiprimärer Cluster für MariaDB, der Hochverfügbarkeit und Skalierbarkeit bietet. Es wird von MariaDB-Servern und der Galera wsrep-Anbieterbibliothek unterstützt. Es bietet Features wie automatische Knotenverknüpfung, echte parallele Replikation, multiprimäre Topologie und mehr. Weitere Informationen dazu finden Sie hier.

  • Kontinuierliches Tungsten Cluster

Tungsten-Cluster bietet ein einzelnes, einfaches Paket mit allen Kernkomponenten, die zum Bereitstellen und Verwalten der MySQL-Datenbank als Cluster erforderlich sind. Es bietet eine Geo-Clustering-Lösung. Sie besteht aus Tungsten Manager, Replicator, Connector, Datenknoten und Dashboard. Weitere Informationen dazu finden Sie hier.

  • MariaDB Xpand (früher bekannt als ClustrixDB)

MariaDB Xpand bietet ACID-konforme verteilte SQL, Hochverfügbarkeit, Fehlertoleranz, Schreibskalierung und horizontale Skalierung für transaktionale Arbeitslasten. MariaDB Xpand ist eine Komponente von MariaDB Enterprise. Sie besteht aus einem oder mehreren MaxScale-Knoten und drei oder mehr Xpand-Knoten. Weitere Informationen dazu finden Sie hier.

  • ScaleArc

ScaleArc ist eine Datenbanklastenausgleichssoftware, die Hochverfügbarkeit bietet. Weitere Informationen dazu finden Sie hier.

  • Vitess

Vitess bietet integrierte Fragmentierungsfeatures, mit denen Sie Ihre Datenbank erweitern können, ohne Ihrer Anwendung eine Fragmentierungslogik hinzuzufügen, und so für Hochverfügbarkeit und Skalierbarkeit sorgen. Weitere Informationen dazu finden Sie hier.

  • Tools für die Standardreplikation für Failover: MHA, ProxySQL, MaxScale und Orchestrator
  • Cloudbasierte Dienste wie Google Cloud, Oracle, AWS und Azure bieten interne Hochverfügbarkeit für MySQL.

MySQL-Tools

MySQL-Tools sind in allen Formen verfügbar – webbasierte, Befehlszeile und grafische Benutzeroberfläche. MySQL bietet eine Vielzahl von Open-Source- und kommerziellen Tools für Datenbankdesign, Entwicklung, Verwaltung, Sicherung, Leistungsmonitoring und Benachrichtigungen. 

Einige beliebte MySQL-Monitoring-Tools mit GUI sind:

Percona Monitoring und Management, Prometheus, MySQL Enterprise Monitor, New Relic, SolarWinds, HeidiSQL, AppDynamics, Datadog und SQLyog.

Einige beliebte Verwaltungs-, Entwicklungs- oder Dienstprogrammtools sind:

  • GUI-basiert: MySQL Workbench, HeidiSQL, DBeaver, dbForge Studio, Navicat, SQLyog
  • CLI-basiert: Percona-Toolkit, Ghost

Details zu beliebten Tools:

  • MySQL Workbench: Eigentum von MySQL, verfügbar in der Community Edition und Enterprise Edition mit erweiterten Funktionen
  • Percona Monitoring and Management (PMM): von Percona entwickelt und kostenlos verfügbar
  • HeidiSQL: von Ansgar Becker entwickelt und kostenlos verfügbar
  • Percona Toolkit: von Percona entwickelt und kostenlos verfügbar
  • Toad: - gehört zu Quest und ist ein kostenpflichtiges Tool
  • phpMyAdmin: das kostenlose webbasierte Open-Source-Tool zur Verwaltung von MySQL
  • DBeaver wurde von der Open-Source-Community entwickelt und ist in der Community Edition und Enterprise Edition mit erweiterten Funktionen verfügbar, die von DBeaver verwaltet werden
  • Navicat: gehört CyberTech und ist ein kostenpflichtiges Tool
  • SQLyog: gehört Webyog und ist auch ein kostenpflichtiges Tool

Andere wichtige Monitoringtools mit Grafiken zur Analyse der Fehlerraten, des Traffics und der Abfragemuster mit Benachrichtigungsmechanismen sind New Relic, Zabbix, Cortex, Prometheus und Grafana.

MySQL mit Containern / Kubernetes ausführen

Das Ausführen einer Datenbank über einen Kubernetes-Cluster mit Docker-Container-Images wird heutzutage immer beliebter. Die Lösung unterstützt Sie bei der Verwaltung der Datenbank durch Code, einfache und schnelle Bereitstellungen, Datenschutz, Isolation von der Anwendung und gemeinsame Ressourcennutzung. Grundsätzlich können alle Vorteile von Docker vom Datenbanksystem genutzt werden. Es gibt auch einige Kubernetes-Operatoren, die bereits für MySQL verfügbar sind. In diesem Bereich gibt es jedoch viel Verbesserungspotenzial.

Möchten Sie MySQL ausprobieren?

Google Cloud bietet ein vollständig verwaltetes MySQL-Angebot – Cloud SQL for MySQL
Informationen zu Cloud SQL

Cloud SQL for MySQL unterstützt Sie bei Innovationen. Dokumentation ansehen