MySQL ist ein relationales Open-Source-Datenbankmanagementsystem (Relational Database Management System, RDBMS), das einfach implementiert und verwaltet werden kann – sowohl on-premise als auch über die Cloud durch einen Hosting-Provider. Durch Replikation werden viele gleichzeitig ablaufende Schreibvorgänge und Skalierungen unterstützt (allerdings wird dadurch die Komplexität erhöht). Aus diesem Grund und wegen seiner relativ geringen Wartungs-/Skalierungskosten wird es in erster Linie als Produktionsdatenbank verwendet.
Das 1994 entwickelte MySQL ist nicht nur eines der am besten etablierten RDBMS, sondern hat sich seitdem auch erheblich weiterentwickelt. Neunzig Prozent aller Websites nutzen MySQL, darunter Riesendienste wie Youtube, Twitter, Wikipedia und Facebook.
MySQL wurde als Open-Source-Lösung entwickelt, sodass es auf handelsüblicher Hardware eingesetzt und mit vorhersehbaren Kosten skaliert werden kann. Dank seiner umfassenden Kompatibilität kann MySQL außerdem jederzeit gegen eine maßgeschneiderte Lösung ausgetauscht werden (viele konkurrierende transaktionale Datenbanken sind genau aus diesem Grund MySQL-konform).
MySQL ist das Datenbank-Äquivalent zu einem Rennwagen, bei dem die Rücksitze entfernt wurden, damit er schneller fährt. Die Entwickler von MySQL entschieden sich dafür, Geschwindigkeit und Leistung den Vorrang vor Funktionsbreite zu geben. Das macht MySQL im Vergleich zu transaktionalen Datenbanken von anderen Anbietern zu einer etwas limitierten, dafür aber schnelleren Datenbank.
Die Fähigkeit von MySQL, für hohe Verfügbarkeit und Skalierbarkeit repliziert und verteilt zu werden, trägt zu seiner hohen Leistung bei. Höhere Verfügbarkeit und Skalierbarkeit bringen jedoch höhere Komplexität und Kosten mit sich.
MySQL wurde in erster Linie für Webanwendungen entwickelt. Es eignet sich besonders für strukturierte und gut geplante Webanwendungen. Oracle beschreibt in einer hervorragenden Ressource, warum MySQL eine geeignete Lösung für Webanwendungen ist.
MySQL ist aufgrund seiner Zuverlässigkeit, Vielseitigkeit und Leistungsfähigkeit oft die erste Wahl für kleinere Unternehmen oder Startups. MySQL ist auch deshalb eine attraktive Option, weil sich eine MySQL-Produktionsdatenbank relativ einfach zur Verwendung als analytische Datenbank replizieren lässt. MySQL verfügt über eine robuste Entwickler-Community, ist eines der am besten dokumentierten DB-Systeme auf dem Markt und wird von einer großen Anzahl von Anbietern vertrieben.
Die MySQL-Software ist Open Source und kann kostenlos heruntergeladen werden. MySQL wird außerdem von zahlreichen Cloud-Anbietern bereitgestellt.
Bei einem On-Premise-Einsatz kann die MySQL-Software selbst kostenlos heruntergeladen und implementiert werden. Die Gesamtbetriebskosten hängen jedoch stark von der zugeteilten Hardware ab: je mehr Festplatten-, CPU- und Speicherplatz, desto höher die Kosten. Bei einer selbst gehosteten MySQL-Lösung kommen noch Kosten für Serverspeicher sowie dedizierte Wartungskosten hinzu.
Das Hosting von MySQL in der Cloud macht die Verwaltung weniger komplex als bei einer On-Premise-Lösung, bietet jedoch weniger Transparenz und Kontrolle.
Es gibt Dutzende von MySQL-Anbietern. Zu den größten gehören:
Die On-Demand-Preise von Amazon RDS beginnen bei nur ein paar Cent pro Stunde für die kleinste Instanz, steigen bei mehr Leistung jedoch kräftig an. Bei längerfristiger Bindung gelten wieder niedrigere Preise. Amazon bietet Multi-Availability-Zone-Bereitstellungen an, die „eine verbesserte Verfügbarkeit und Widerstandsfähigkeit für Datenbankinstanzen bieten“. Die Speicherkosten sind nicht enthalten und werden nach GB pro Monat berechnet. Es fallen keine zusätzlichen Kosten für Backup-Speicherung an.
Google bietet zwei verschiedene Preisschemata für Cloud SQL (sein MySQL-Angebot) an. Die erste Generation wird als Komplettpaket geliefert oder auf tatsächlicher Gebrauchs-Basis berechnet. Die zweite Generation wird für jede Minute, in der die Instanz ausgeführt wird, berechnet und ist besser konfigurierbar.
Mit dem Preisrechner von Google können Sie abschätzen, welcher Plan für Ihre spezifischen Anforderungen am besten geeignet ist. Und: Google bietet eine Gutschrift in Höhe von 300 USD für die ersten 12 Monate an.
Die Preise für Oracle Cloud sind mit stündlichen und monatlichen Plänen für die Service-Verfügbarkeit relativ unkompliziert. Für die Speicherung gelten Staffelpreise auf Stundenbasis, die bei wenigen Cent pro GB pro Monat beginnen. Der Monatsplan für die Speicherung beginnt bei 30 USD pro TB/Monat. Für ausgehende Datenübertragungen fallen zusätzliche Kosten an, falls diese ein GB pro Monat überschreiten.
Die Architektur von MySQL besteht aus mehreren Ebenen:
Die Anwendungsebene von MySQL ist die Art und Weise, wie sich verschiedene Clients mit MySQL verbinden und Abfragen stellen. Anwendungen wie MySQL Workbench und Looker stellen eine Verbindung mit der MySQL-Anwendungsebene her, um Abfragen zu senden und den Benutzerzugriff auf die Datenbank zu steuern.
Wenn von der Anwendungsebene eine Abfrage zum Lesen oder Schreiben von Daten aus der untergeordneten Speicherebene gestellt wird, übersetzt der Abfrageprozessor diese Abfrage in einen Abfrageplan, den die Datenbank ausführen kann.
MySQL ist ACID-konform, d. h. ein Satz von Abfragen kann in einer Transaktion gekapselt werden. Das führt dazu, dass entweder alle erfolgreich sind oder alle fehlschlagen. Der Transaktionsmanager regelt dies, indem er einen COMMIT-Befehl zur Ausführung jeder Transaktion erteilt. Wenn eine Transaktion fehlschlägt, erteilt der Transaktionsmanager einen ROLLBACK-Befehl. Dieser macht alle Änderungen an der Datenbank, welche durch die fehlgeschlagene Transaktion erfolgten, rückgängig.
MySQL ist äußerst widerstandsfähig. Der Recovery-Manager ist dafür verantwortlich, die Datenbank im Falle eines Absturzes in ihren letzten stabilen Zustand zurückzuversetzen. Er protokolliert jede einzelne Operation, die in der Datenbank (seit ihrem Beginn) abgeschlossen wurde. Im Falle eines Absturzes führt er jeden Befehl im Protokoll aus, wodurch die Datenbank effektiv wieder in ihren letzten stabilen Zustand zurückversetzt wird.
Der Speichermanager ist für die Zuweisung von Speicherressourcen verantwortlich, die erforderlich sind, um Daten von der physischen Platte zu ziehen und die Ergebnisse an den Client zu liefern.
Das MySQL-RDBMS unterscheidet sich bezüglich der Speicher-Engines aufgrund seiner modularen Architektur stark von anderen transaktionalen Datenbanken. Da der Server-Kerncode von MySQL von der Speicher-Engine getrennt ist, können Speicher-Engines in MySQL ein- und ausgelagert werden. Dadurch erhalten Benutzer die Flexibilität und die Fähigkeit, ihre Datenspeicher an ihre Bedürfnisse anzupassen.
Das ist von besonderer Bedeutung, da die jeweils verwendete Speicher-Engine die Datenbankleistung erheblich beeinflusst. Die Dokumentation von MySQL enthält eine umfassende Liste der unterstützten Speicher-Engines.
MySQL unterstützt Transaktionen mit der Integration der BDB- und InnoDB-Engines (die Standard-Engine). Das macht die Ausführung von simultanen Schreibvorgängen sicherer und begründete den Trend zur Integration von Funktionen, die in Unternehmensumgebungen benötigt werden.
MySQL läuft auf Linux, Solaris, Windows, AIX und HPUX und bietet sowohl 32-Bit- als auch 64-Bit-Versionen.
MySQL ist weitgehend kompatibel mit MariaDB und Amazon Aurora. Wie bei allen Dialekten gibt es einige Unterschiede (z. B. unterstützt Aurora nur Lese-Replikate), aber die drei Dialekte sind eng miteinander verwandt. Ein Vorteil von MariaDB ist, dass es über Fensterfunktionalität verfügt, während das bei MySQL nicht der Fall ist.
MySQL arbeitet besser mit gut strukturierten Transaktionsdaten und Daten, die in der dritten normalen Form strukturiert sind. MySQL funktioniert außerdem besser mit kleineren, vollständigeren Datensätzen. Es funktioniert dagegen nicht sehr gut mit spärlichen Daten oder breiten Tabellen. Je spärlicher die Tabelle, desto schwieriger ist es, sie zu schreiben; je breiter die Tabelle, desto schwieriger ist es, sie zu lesen.
MySQL kann große bzw. sogar sehr große Tabellen unterstützen, allerdings mit viel größerer Komplexität und höheren Kosten. MySQL ist in hohem Maße von der Indexierung abhängig. Daher kann die Leistung stark davon beeinflusst werden, ob Sie im Voraus wissen, welche Arten von Abfragen Sie ausführen werden.
Auch wenn es keine feste Obergrenze gibt, würden sicher nur wenige empfehlen, mehr als eine Milliarde Zeilen zu laden. InnoDB-Tabellen haben eine fest definierte Obergrenze von 1017 Spalten.
Man könnte ein ganzes Buch über die Feinabstimmung von MySQL schreiben (und davon gibt es mittlerweile mehrere!).
Aber es reicht zu sagen, dass es mehr Anpassungsoptionen (und mehr Möglichkeiten, sich ins eigene Fleisch zu schneiden) gibt, wenn man lokal hostet. Bei der Wahl einer Cloud-gehosteten Lösung ist man durch die Erstellung eines Kontos bei Google Cloud Storage oder eines Clusters bei Amazon RDS in Minutenschnelle einsatzbereit. Da es sich um gehostete Lösungen handelt, werden die meisten Dinge, um die man sich normalerweise bei der Bereitstellung auf eigenen Servern kümmern müsste, für Sie erledigt.
MySQL funktioniert ohne Anpassungen gut für kleine Datensätze und Arbeitslasten. Da jedoch sowohl die Daten als auch der Bedarf an Gleichzeitigkeit schwanken, kann MySQL auf verschiedene Weise skaliert werden.
Es gibt zwei Hauptarten der Replikation:
die Master-Slave-Replikation, die dadurch gekennzeichnet ist, dass eine Produktionsdatenbank für das Schreiben von Daten zuständig ist, während es potenziell mehrere Slave-Datenbanken als schreibgeschützte Replikate der Master-Datenbank gibt. Auf diese Weise kann ein Administrator gleichzeitig ablaufende Lesevorgänge auf der Instanz skalieren.
die Multi-Master-Replikation, die der Master-Slave-Replikation ähnlich ist, aber sowohl die Skalierung von Schreibvorgängen als auch die Erhöhung der Verfügbarkeit ermöglicht. Dieses Replikationssystem ist jedoch komplexer, was die Latenzzeit erhöht.
Business Intelligence, Big-Data-Analyse oder eine 360°-Ansicht Ihrer Kunden.
Was auch immer Sie benötigen, Looker steht Ihnen zur Seite. Sprechen Sie einfach mit unseren Datenexperten.