Softwareentwickler können ein relationales Datenbankverwaltungssystem (RDBMS) verwenden, um Backend-Daten zu erstellen, zu lesen, zu aktualisieren und zu löschen. Es stehen jedoch mehrere RDBMS zur Auswahl, und jedes ist speziell für bestimmte Anwendungsfälle konzipiert und unterscheidet sich in Funktionen, Preisgestaltung und Leistung.
Unabhängig davon, mit welchem RDBMS Sie arbeiten, ist die Leistungsüberwachung ein unverzichtbarer Bestandteil zur Gewährleistung der Funktionalität, Zuverlässigkeit und Verfügbarkeit. In diesem Artikel werde ich vier der wichtigsten RDBMS-Typen und geeignete Überwachungslösungen durchgehen: Amazon RDS, Amazon Aurora, MySQL und SQL Server. Nach einer Übersicht über die einzelnen werde ich ihre Leistung und Preise vergleichen.
Gängige relationale Datenbanktypen
Leistungs- und Funktionsvergleich
So überwachen Sie die Leistung relationaler Datenbanken
Preisvergleich für relationale Datenbanken
Was ist die beste relationale Datenbank?
Gängige relationale Datentypen
- Amazon RDS: Amazon RDS ist ein verwalteter relationaler Datenbankdienst, der Ihnen den Stress aus den Verwaltungsaufgaben nehmen kann, mit denen Sie sonst umgehen müssen. Es ist einfach zu bedienen und bietet mehr Flexibilität als die Verwaltung eigener Server. Statt CPU, Arbeitsspeicher, Speicher und Durchsatz wie ein typischer Server zu bündeln, können Sie mit Amazon RDS jedes dieser Features unabhängig skalieren und nach Bedarf zuweisen. Es enthält auch Tools zum Erstellen von Backups, zur Durchführung von Software-Patching-Prozessen und zur Einrichtung der automatischen Fehlererkennung und -wiederherstellung.
- Amazon Aurora: Der grundlegende Baustein von Amazon RDS wird als „DB-Instance“ bezeichnet. Eine DB-Instanz ist eine Datenbankumgebung in der Cloud und kann mehrere Datenbanken enthalten. In jeder DB-Instanz wird eine DB-Engine ausgeführt, und mit Amazon RDS können Sie zwischen verschiedenen DB-Engines, einschließlich Aurora, wählen.
Sie können RDS und Aurora über Amazon Web Services (AWS) zugreifen, aber sie haben leicht unterschiedliche Verwendungszwecke. Im Wesentlichen ist die AWS Aurora-Datenbank eine benutzerdefinierte Engine für Amazon RDS und ist für die Leistung in der Cloud optimiert.
Aurora ist kompatibel mit MySQL und PostgreSQL und soll die Verfügbarkeit und Leistung herkömmlicher Datenbank-Engines mit der Wirtschaftlichkeit und Einfachheit von Open Source verbinden. RDS kann mit verschiedenen Engines verwendet werden, während Aurora ein spezieller Motor ist, der für den Einsatz mit RDS entwickelt wurde. - MySQL: MySQL ist ein weit verbreitetes RDBMS. Es gibt zwei Formen: die Open-Source-Version (MySQL Community Server) und die proprietäre Version (MySQL Enterprise Edition), die Oracle gehört. Jeder kann die Open-Source-Software MySQL herunterladen und kostenlos nutzen. Es eignet sich hervorragend für den Online-Zugriff auf Datenbanken und wurde entwickelt, um große Datenbanken viel schneller zu verarbeiten als andere Lösungen, die zur gleichen Zeit entwickelt wurden. Es wird am häufigsten für Webanwendungen und Online-Publishing verwendet.
- SQL Server: SQL Server ist ein von Microsoft entwickeltes RDBMS. Lange Zeit war es nur unter Windows verfügbar, jetzt ist es aber auch für Linux verfügbar. Je nach Bedarf und Budget können Sie zwischen mehreren Editionen von SQL Server wählen, darunter die Editionen Enterprise, Standard und Developer.
Leistungs- und Funktionsvergleich
Amazon Aurora vs. RDS
Die Hauptvorteile von Amazon RDS sind vorkonfigurierte Parameter, automatische Software-Patching-Funktionen und robuste Tools für Überwachung und Messdaten.
Als benutzerdefinierte Engine für RDS verfügt Amazon Aurora über zusätzliche Funktionen, um es schneller und moderner zu machen. Aurora verfügt über einen hohen Durchsatz, automatische Skalierung des Speichers und ein selbstheilendes, fehlertolerantes Speichersystem. Außerdem bietet es eine punktgenaue Wiederherstellung und kontinuierliche Sicherung sowie eine Replikation über drei Verfügbarkeitszonen, um Ihre Daten zu schützen.
Die Leistung von Aurora und RDS hängt von der Engine ab, die Sie mit RDS verwenden, da einige auf Verfügbarkeit statt auf Geschwindigkeit optimiert sind oder sich in bestehenden Code einfügen.
Aurora vs. MySQL und SQL Server
Aurora ist für die Leistung mit Cloud-Servern gedacht, während MySQL für die Ausführung auf physischen Maschinen konzipiert ist und möglicherweise nicht für die Leistung virtueller Maschinen optimiert ist. Infolgedessen wird die Leistung von Amazon Aurora und MySQL durch die Art der Maschinen beeinflusst, auf denen das System läuft.
Amazon behauptet, Aurora sei fünfmal schneller als Standard-MySQL-Datenbanken und dreimal schneller als PostgreSQL-Datenbanken, wenn sie in der Cloud verwendet werden. Ein Vergleich von Amazon Aurora mit SQL Server führt zu ähnlichen Ergebnissen, da SQL Server – wie MySQL – für den lokalen Einsatz konzipiert ist.
MySQL vs. SQL Server
Vor 2016 wurden MySQL und SQL Server nach der Anzahl der Plattformen unterschieden, auf denen sie verwendet werden konnten: MySQL war auf mehreren Plattformen verfügbar, während SQL Server nur unter Windows nutzbar war. Heute ist SQL Server auch auf Linux verfügbar. Da diese RDBMSs auf die Kompatibilität mit mehreren Plattformen ausgelegt sind, sind sie vielseitig und flexibel, während Amazon Aurora nur für den Einsatz mit RDS entwickelt wurde. Das bedeutet, dass SQL Server- und MySQL-Entwickler manchmal Leistungseinbußen zugunsten der Kompatibilität vornehmen.
MySQL ist Open-Source, d. h. Sie können den Quellcode beliebig verändern. Darüber hinaus wird MySQL schon lange verwendet, so dass eine Menge Unterstützung zur Verfügung steht, einschließlich reichlich Ressourcen für Entwickler.
MySQL unterstützt mehrere Speicher-Engines, einschließlich InnoDB, CSV und NDB. Wenn Sie die InnoDB-Engine mit MySQL verwenden, ist sie nicht so schnell wie die anderen Engines, da InnoDB auf Verfügbarkeit und nicht auf Geschwindigkeit ausgelegt ist. MySQL ist in C und C++ geschrieben und kann unter Windows, Mac, Unix und Linux verwendet werden. Zu Sicherheitszwecken verwendet MySQL ein System von Zugriffsberechtigungen und verschlüsselten Passwörtern, wodurch die Überprüfung in einem Host-basierten System durchgeführt werden kann.
Im Gegensatz zu MySQL hat SQL Server nur eine Speicher-Engine, was es ein bisschen weniger flexibel macht.
Einer der Unterschiede zwischen MySQL und SQL Server betrifft die unterstützten Sprachen. Während beide C++, Delphi, Go, Java, PHP, Python, R, Ruby und Visual Basic unterstützen, unterstützt MySQL auch Eiffel, Haskell, Perl, Scheme und Tcl. Diese erweiterte Programmiersprachenunterstützung trägt zur Popularität von MySQL bei.
Ein weiterer Unterschied hat mit der Filterfähigkeit zu tun. MySQL erfordert, dass Sie Benutzer, Tabellen oder Zeilen pro Datenbank herausfiltern, was bedeutet, dass Entwickler häufig mehrere Abfragen ausführen müssen. Mit SQL Server können Sie zeilenbasierte Filterung verwenden, d. h. Sie können mehrere Zeilen filtern, ohne die Anzahl der Datenbanken berücksichtigen zu müssen.
Schließlich enthält SQL Server Datenleistungsanalyse– und Berichterstellungstools wie SQL Server Reporting Services, die kostenlos heruntergeladen werden können. MySQL bietet ähnliche Tools wie Crystal Reports und Actuate BIRT. Sie können auch Tools von Drittanbietern verwenden, um die Leistung zu überwachen.
Preisvergleich für relationale Datenbanken
Amazon RDS
Die Preise der verschiedenen von RDS angebotenen Instanzen hängen von den gewünschten Funktionen, der Region, in der Sie leben, wo Sie Daten übertragen und welche Version oder Edition der Instanz Sie verwenden, ab. Die Preisgestaltung für Aurora, nachstehend aufgeführt, ähnelt der Preisstruktur aller anderen RDS-Engines.
Amazon Aurora
Amazon Aurora ist ein Pay-as-you-go-Service ohne Vorabgebühren. Es hat zwei unterschiedliche Preisstrukturen, je nachdem, ob Sie die MySQL-kompatible Edition oder die PostgreSQL-kompatible Edition verwenden. Für beide Editionen stehen zwei Arten von Instanzen zur Verfügung: Standardinstanzen und speicheroptimierte Instanzen.
Der von Ihrer Datenbank verbrauchte Speicher wird monatlich pro GB abgerechnet. Außerdem werden I/Os monatlich in Schritten von einer Million Anfragen abgerechnet. Sie können auch für die Aurora Global Database bezahlen, die ca. 0,2 $ pro Million replizierte Schreib-I/Os kostet. Diese Funktion bietet globale Lesevorgänge mit geringer Latenz und Notfallwiederherstellung. Bei der Aurora Global Database werden Instanzen, Speicher, Datentransfer, Backup- und Backtracking-Funktionen zu Standardtarifen abgerechnet, und die Backup-Gebühr wird monatlich pro GB berechnet. Die Gebühren im Zusammenhang mit Aurora variieren je nach Standort.
Mit der MySQL-kompatiblen Aurora-Version können Nutzer die Backtrack-Funktion separat bezahlen. So können Sie schnell zu einer früheren Aurora-Datenbank zurückkehren, ohne Daten aus einem Backup wiederherstellen zu müssen. Die Backtrack-Funktion wird pro eine Million Änderungsdatensätze berechnet.
Alle Daten, die in die Aurora-Datenbank übertragen werden, sind kostenlos. Die Kosten für Übertragungen aus der Aurora-Datenbank ins Internet hängen vom Umfang der Übertragung ab, und die Kosten für Übertragungen von Aurora in andere Regionen oder zu Amazon CloudFront hängen von den Regionen ab, in die Sie die Übertragung vornehmen.
Aurora-Preise vs. RDS-Preise hängen auch von der Engine ab, die Sie für RDS verwenden, der Region, in der Sie sich befinden, den ausgewählten Funktionen und der Art und Weise, wie Sie Daten übertragen, während Sie Ihre Datenbanken nutzen. Im Allgemeinen ist Aurora etwas teurer als die anderen RDS-Datenbank-Engines.
MySQL
Die Open-Source-Version von MySQL ist komplett kostenlos. Sie können für die Enterprise-Version für zusätzlichen Support und Funktionen auf Abonnementbasis bezahlen: Sie kostet 60.000 US-Dollar für ein dreijähriges Abonnement und Support oder 5.000 US-Dollar pro Server und Jahr.
SQL-Server
SQL Server bietet eine Reihe von Editionen. Die Enterprise Edition bietet unter anderem geschäftskritische Leistung für besonders anspruchsvolle Datenbankanforderungen sowie Business Intelligence und Analyse. Es wird pro Kern lizenziert und kostet 14.256 US-Dollar für den offenen Preis ohne Stufe. Die Standard Edition ist viel billiger bei 3.717 US-Dollar, und es ist besser geeignet für unkritische Workloads, wenn es um Datenverwaltung und Business Intelligence geht. Die Developer-Version von SQL Server ist kostenlos.
Was ist die beste relationale Datenbank?
Jede dieser Datenbanken hat Vor- und Nachteile. Egal für welche Datenbank Sie sich entscheiden, ihre Leistung hängt von der Plattform ab, auf der Sie sie ausführen, und von der Engine, die Sie damit verwenden. Die InnoDB-Engine für MySQL (ausgelegt auf Verfügbarkeit) neben Aurora for RDS (ausgelegt auf Geschwindigkeit) ist beispielsweise kein fairer Vergleich.
In jedem Fall möchten Sie die Leistung in Bezug auf Geschwindigkeit und Verfügbarkeit überwachen und analysieren, daher empfehle ich die Verwendung eines Tools zur Überwachung der hier behandelten relationalen Datenbanken, da es die einfache Fehlerbehebung und nahtlose Verwaltung in einer Datenbankumgebung erleichtert.
So überwachen Sie die Leistung relationaler Datenbanken
Überwachung ist ein wesentlicher Bestandteil der Aufrechterhaltung der Zuverlässigkeit und Leistungsfähigkeit Ihres Datenbankverwaltungssystems. Sie sollten sicherstellen, dass Sie kontinuierlich Daten von Ihrer Datenbanklösung erfassen, damit Sie Probleme debuggen können, wenn sie auftreten. Es ist auch wichtig, einen klaren Überwachungsplan zu haben, damit Sie Ihre RDBMS-Leistung auf dem neuesten Stand halten können.
Überlegen Sie genau, welche Ressourcen Sie überwachen möchten, wie viele Details Sie benötigen und wie oft Sie eine Systemprüfung durchführen.
Stellen Sie als Teil Ihres Überwachungsplans sicher, dass Sie einen eindeutigen Eskalationspfad haben, damit Ihre Geschäftskollegen und Kunden wissen, an wen sie sich wenden können, wenn ein Problem auftritt. Stellen Sie außerdem sicher, dass entsprechende Warnmeldungen eingerichtet werden, damit die betroffenen Personen benachrichtigt werden, wenn etwas schief geht.
SolarWinds Database Performance Monitor
Ein gutes Überwachungstool ist der Schlüssel zur Aufrechterhaltung des Datenbanksystems. Wenn Sie mehrere Datenbanken überwachen, sollten Sie nach einem Überwachungstool suchen, das in der Lage ist, über alle von ihnen zu berichten, sodass Sie nicht zwischen Programmen wechseln müssen, um einen Gesamtüberblick über die Leistung zu erhalten.
SolarWinds Database Performance Monitor (DPM) ist eine cloudbasierte Datenbank-Überwachungslösung. DPM wurde entwickelt, um den Zustand einer Datenbank auf Faktoren wie Latenz, Fehlerrate, CPU-Auslastung, Netzwerk- und Festplattendurchsatz und mehr zu überwachen. Sie erhalten auch Vorher-Nachher-Vergleiche, die Ihnen helfen, die Auswirkungen von Veränderungen zu verstehen.
Wenn Sie Interesse an der Verwendung von DPM haben oder neugierig sind, was es sonst noch kann, können Sie hier eine Demo anfordern.
SolarWinds Datenbank Performance Analyzer
Für einen hochwertigen Datenbankleistungsanalysator, den Sie mit RDS, Aurora, MySQL und SQL Server verwenden können, empfehle ich den SolarWinds Database Performance Analyzer (DPA).
DPA wurde für die Leistungsüberwachung, -analyse und -optimierung entwickelt und kann Ihnen dabei helfen, ein klares Leistungsbild zu erhalten und die Fehlerbehebung zu vereinfachen. Es arbeitet auch mit historischen Daten, um zu sehen, wohin die Leistung geht und wie sich Ihr System entwickelt. Es verwendet maschinelle Lernprozesse, um Anomalien zu erkennen, sodass Sie auf Datenbankleistungs– oder Sicherheitsprobleme aufmerksam gemacht werden, sobald etwas Ungewöhnliches auftritt. Mit DPA können Sie auch Ihre RDS-, Aurora-, MySQL- und SQL Server-Instanzen analysieren und Leistungsmessdaten vergleichen.
Sobald Ihr Analysegerät eingerichtet ist, testen Sie jede Datenbank unter normalen Leistungsbedingungen, zu verschiedenen Zeiten und mit unterschiedlichen Belastungen. Erwägen Sie, historische Überwachungsdaten für eine bestimmte Zeit zu speichern, damit Sie vor dem Vergleich mit den anderen eine aussagekräftige Momentaufnahme der Leistung einer Datenbank erhalten.
Wenn Sie Interesse an der Verwendung von DPA haben oder neugierig sind, was es sonst noch kann, können Sie hier eine interaktive Demo anfordern.
SolarWinds DPM vs. DPA
Database Performance Monitor und Database Performance Analyzer klingen ähnlich, aber es gibt einige wesentliche Unterschiede zwischen ihnen. Als Open-Source-Lösung zur Überwachung der Datenbankleistung für Cloud- und lokale Datenbanken wurde Database Performance Monitor entwickelt, um Ihnen dabei zu helfen, tiefer in die Leistung einzutauchen. Mit Funktionen wie der adaptiven Fehlererkennung kann DPM mit einer Granularität von einer Sekunde anzeigen, wann und wo ein System ausfällt. DPM kann Ihnen auch in einem leicht verständlichen Format zeigen, wo Sie nach der Ursache eines Problems suchen müssen, damit Ihr Team Änderungen vornehmen und zukünftige Probleme vermeiden kann.
Database Performance Analyzer hingegen kann Daten erfassen und wurde entwickelt, um Ihnen zu helfen, Muster und Details besser zu verstehen. SolarWinds DPA plattformübergreifende Unterstützung für Cloud- und lokale Datenbanken. DPA verfügt auch über die Erkennung von Anomalien, die durch maschinelles Lernen unterstützt wird und im Laufe der Zeit immer intelligenter wird, damit Sie die Engpässe, die Ihre Anwendungen verlangsamen, leichter erkennen können.
SolarWinds DPM und DPA unterstützen auch verschiedene Datenbankplattformen. Also, brauchen Sie DPA, oder brauchen Sie DPM? Nun, das hängt von Ihrem Geschäft ab. Um Ihre Anforderungen zu verstehen, sollten Sie sich die kostenlosen Testversionen dieser führenden Datenbankleistungstools ansehen.