Dienstag, 6. September 2011

Technische Unterschiede PostgreSQL, MySQL, MariaDB - Teil 6

Die vorangegangenen Teile dieser Artikelserie sind hier:
  1. http://miraspostgresqlwelt.blogspot.com/2011/08/technische-unterschiede-postgresql.html  
  2. http://miraspostgresqlwelt.blogspot.com/2011/08/technische-unterschiede-postgresql_30.html
  3. http://miraspostgresqlwelt.blogspot.com/2011/08/technische-unterschiede-postgresql_31.html
  4. http://miraspostgresqlwelt.blogspot.com/2011/09/technische-unterschiede-postgresql.html
  5. http://miraspostgresqlwelt.blogspot.com/2011/09/technische-unterschiede-postgresql_02.html
Wann nehme ich welches System?
Diese Frage bekomm ich häufig gestellt und ich versuche stets hier genau abzuwägen und unabhängig zu empfehlen.

Die Frage lässt sich nicht pauschal beantworten. Zum einen hängt es von der Anwendung ab. Es gibt durchaus Anwendungsfälle bei denen das eine oder das andere besser geeignet ist. Eine genaue Anlyse der Pflichtenhefte der Anwendungen, für die die Datenbank erstellt werden soll, ist hier notwendig.

Ich stelle leider heutzutage auch immer häufiger bei dieser Frage - nachdem ich mir die Anwendung habe erklären lassen - fest, dass relationale Datenbanken eine solche Machtposition erreicht haben, dass gerne vergessen wird, dass es noch andere Datenbankkonzepte gibt, die ggf. besser für die spezielle Anwendung geeignet wären, als ein relationales Konzept.

Die erste Frage ist daher - brauch ich ein relationales Datenbanksystem? Ist PostgreSQL bzw. MySQL nicht oversized? Reicht mir vielleicht SQLite? Sollte ich vielleicht mal im NoSQL-Bereich schauen, ob es nicht was gibt, was besser für meinen Anwendungsfall geeignet ist? Muß ich große Blobs wirklich in einer relationalen Datenbank ablegen, oder reicht die Speicherung in einem Dateisystem (was übrigens auch nichts anderes ist als eine Datenbank, jedoch nach hirarchischem und nicht nach relationalem Konzept).

Wenn relational das beste für die Anwendungen ist - dann ist zu prüfen, ob PostgreSQL oder MySQL hier Vorteile haben, die für die Anwendung entscheidend sind. Ein paar Aspekte, wann wer besser zu welcher Anwendung passt, ergeben sich vielleicht später aus den technischen Unterschieden, die ich noch erläutern werden.

Die meisten gängigen Anwendungsfälle bewegen sich jedoch in Bereichen, in denen PostgreSQL und MySQL bei richtiger Verwendung gleich stark sind und es somit völlig egal ist, welches eingesetzt wird.

In solchen Fällen spielen andere Aspekte eine Rolle.

Als aller erstes stellt sich dann die Lizenzfrage.

Die PostgreSQL-Lizenz ist BSD. Jeder darf es nutzen, jeder darf es ändern, jeder darf es weiterverteilen.

MySQL hat eine Duallicense. Zum einen GPL aber, sobald MySQL zusammen mit einer anderen Anwendung ausgeliefert wird, ist Obacht geboten. Hier geht es um die Clientlibrary. Ist die Anwendung selbst nicht unter GPL, ist der Kauf einer Lizenz von Oracle erforderlich.

MariaDB kommt aus dieser Nummer natürlich nicht heraus. Legal umgehen lässt sich der Kauf von teuren Oracle Lizenzen jedoch, durch die Verwendung der Drizzle-Clientlibrary, die unter BSD steht, und die durchaus auch mit MySQL bzw. MariaDB funktioniert.

Ist die Lizenzfrage kein Thema, dann schaue ich mir den Anwender selbst an:

Was passt besser zu ihm? Womit kommt er besser klar? Womit mag er glücklicher werden? Was ist intuitiver für ihn?

Der Anwender sollte sich daneben noch selbst fragen:

Wie sieht es im Community-Support aus?

Hier bin ich zu sehr befangen. Ich rate hier jedem, sich selbst ein Bild zu machen. Einfach versuchen, den Community Support selbst zu finden und ggf. in andere Fälle schauen: Wie wurde geholfen? Gefällt mir wie geholfen wurde? Welcher Community Support macht auf mich den besseren Eindruck? Mit welcher Community komme ich besser klar?

Ich kann hier nur anmerken, dass sowohl MySQL/MariaDB als auch PostgreSQL so stark mit deutschsprachigen Entwicklern unterwandert sind, dass zumindestens der Community Support im IRC (irc.freenode.net) in den deutschen Channeln (#postgresql-de, #mysql.de) und hinter den deutschen Mailinglisten ein enormes Knowhow besitzt, so dass hier nicht auf englisch ausgewichen werden muß. Der deutsche Support ist daneben noch ruhiger und alles andere als überfüllt.

Auch könnte der Anwender sich Gedanken darum machen, was ist, wenn ich professionelle Hilfe brauche? Wen kann ich anheuern? Wem vertraue ich?

Pauschal lässt sich die Frage, wann nehme ich was, in keinem Fall beantworten. Hier ist stets eine individuelle Analyse nötig, die ggf. sogar über die Anwendung hinaus geht.

WERBUNG für professionelle Hilfe

Da ich die Mitarbeiter von SkySQL alle persönlich kenne und ihr Knowhow - empfehle ich natürlich für professionelle MySQL- und MariaDB-Dienstleistung SkySQL.

Für professionelle PostgreSQL-Dienstleistungen gibt es natürlich keine bessere Firma als 2ndQuadrant (Eigenwerbung darf sein).

2ndQuadrant und SkySQL besitzen deutschsprachige Techniker und Ingenieure / Informatiker die Schulungen und Consulting (technische Beratung durch Fachleute mit tiefen technischen Kenntnissen) durchführen.

Man hörte früher immer wieder: "MySQL hat den besten 24/7 Support der Welt."

Die Magie dahinter ist einfach durchschaubar. Der Support wurde von den Entwicklern selbst durchgeführt. Egal ob es eine einfache oder komplexe Frage war, man bekam die Antwort stets direkt von den Experten. Man wurde nicht erst in ein Callcenter geroutet, in welchem der Callcenter-Mitarbeiter eine Liste von Frage durchging. Man landete sofort und umgehend bei den Experten.

Da die Experten weltweit verstreut saßen, und somit natürlich bedingt zu unterschiedlichen Zeiten hellwach und aufnahmebereit waren, klingelte man hier niemandem nachts aus dem Bett und musste auch nicht erst abwarten, bis sich der erwachte gesammelt hatte, sondern man bekam die Hilfe von hellwachen und ausgeschlafenden Australiern bzw. Amerikanern.

Es gibt nur einen kleinen Haken bei diesem System - so ein 24/7 Support kann nur in englischer Sprache funktionieren.

Hinter SkySQL stecken gleich mehrere ehemalige MySQL Manager aus Services und Support. Daneben sind einige der Gurus des MySQL-Support, ihren ehemaligen Chefs gefolgt und arbeiten heute für SkySQL. SkySQL bietet MySQL-und MariaDB-Support nach dem oben beschriebenen, guten und bewährten System an.

2ndQuadrant schöpft hier aus meiner Erfahrung im MySQL-Support und unser 24/7-PostgreSQL-Support ist ziemlich identisch gestrickt. Unser Support wird ausschließlich von den PostgreSQL Experten durchgeführt. Bei uns kann es Ihnen durchaus passieren, dass Sie direkt von einem unserer beiden Ober-Gurus (Simon Riggs und Greg Smith) höchstpersönlich bedient werden.

Keine Kommentare:

Kommentar veröffentlichen