Die Wahl der richtigen Datenbank für deine Anwendung ist wichtig, besonders für Backend-Anwendungen, die direkt mit der Datenbank verbunden sind. Es gibt viele Optionen, die jeweils für bestimmte Anwendungsfälle geeignet sind und unterschiedliche Preise, Geschwindigkeiten und Skalierungsoptionen haben.

Python wird in der Regel für datenintensive Anwendungen verwendet, da es über leistungsstarke Bibliotheken zur Datenmanipulation verfügt, daher ist es wichtig, welche Datenbank du für eine Python-Anwendung verwendest.

Dieser Artikel vergleicht MariaDB mit anderen Datenbanktechnologien wie MySQL und PostgreSQL und erklärt, warum sie eine gute Wahl für Python ist.

Was macht MariaDB so gut für Python?

Dank seiner leistungsstarken Bibliotheken für Datenmanipulation und maschinelles Lernen ist Python eine beliebte Programmiersprache für Datenexperten – vor allem in den Bereichen Data Engineering und Data Science. Beide Bereiche haben mit großen Datenmengen zu tun, was den Bedarf an Speicherplatz, Speicher- und Rechenleistung erhöht.

Die Lizenzkosten steigen oft mit der Größe deiner Daten, daher ist es sinnvoll, eine Open-Source-Datenbank zu verwenden. Auch bei der Hardware kannst du Geld sparen. Da du die volle Kontrolle darüber hast, wo die Anwendung eingesetzt wird, kannst du die günstigsten Lösungen in der Cloud oder vor Ort finden.

Es gibt viele Open-Source-Datenbanken, darunter relationale, NoSQL- und Graph-Datenbanken. Relationale Datenbanken sind in der Regel gut für Struktur und Konsistenz, während NoSQL-Datenbanken, die eine schnelle Entwicklung ermöglichen, flexibler sind.

Obwohl Python sehr gut mit NoSQL-Datenbanken zusammenarbeitet, eignen sich relationale Datenbanken besser für die Analyse und die Verarbeitung großer Datenmengen, die häufig in Python verwendet werden.

Vergleichen wir MariaDB mit einigen anderen beliebten relationalen Open-Source-Datenbanken.

MariaDB vs. MySQL vs. PostgreSQL

Die beliebtesten relationalen Open-Source-Datenbanken sind MariaDB, SQLite, MySQL und PostgreSQL. Jede hat ähnliche technische Kernfähigkeiten, aber MariaDB hat einige einzigartige Funktionen, die sie für Python-Anwendungen am besten geeignet machen.

Außerdem ist MariaDB eine Open-Source-Datenbank, so dass ihre Funktionen nicht von einem externen Unternehmen wie MySQL abhängen, das jetzt Oracle gehört. Obwohl die Open-Source-Gemeinschaft immer noch Funktionen für MySQL vorschlagen und hinzufügen kann, entscheidet Oracle (das eine konkurrierende Datenbank besitzt), wohin die Reise geht.

MariaDB hingegen wurde nach der Übernahme von MySQL durch Oracle gegründet, um einen von der Gemeinschaft geleiteten Entwicklungsansatz weiterzuführen. Das Ergebnis ist, dass MariaDB einen größeren Funktionsumfang hat, einschließlich mehr Speicher-Engines, die eine bessere Leistung bei Abfragen und Replikation als MySQL gewährleisten. Diese verbesserte Leistung ist wichtig, wenn du mit großen Datensätzen arbeitest.

Die Gründe, MariaDB gegenüber PostgreSQL zu bevorzugen, sind etwas differenzierter, da PostgreSQL ebenfalls von der Community betrieben wird. PostgreSQL verwendet jedoch eine eigene BSD-ähnliche Lizenz, die PostgreSQL-Lizenz, die freizügiger ist als die GNU-Lizenz von MariaDB und den Nutzern erlaubt, Closed-Source-Erweiterungen zu erstellen.

Diese Funktionen sind zwar für den Benutzer, der die Erweiterung erstellt, von Vorteil, werden aber nicht immer in der PostgreSQL-Kerndatenbank verwendet, und Entwickler können für die Nutzung ihrer Erweiterungen sogar Geld verlangen. Die GNU-Lizenz von MariaDB und MySQL erlaubt es nicht, neue Funktionen zu privatisieren – alle neuen Funktionen sind frei verfügbar.

MariaDB und PostgreSQL haben den größten Funktionsumfang. Allerdings hat MariaDB einige praktische Funktionen für ein Python-Backend. MariaDB verwendet zum Beispiel eine einzige Sprache für die Schnittstelle zu den verschiedenen Speicher-Engines – OLAP- und OLTP-Systeme werden mit derselben Syntax gesteuert, was den Aufwand für die Entwickler/innen verringert.

Dein Python-Backend kann transaktionsähnliche Daten an MariaDB schreiben, die diese Daten in eine Speicher-Engine kopieren kann, die für analytische Abfragen besser geeignet ist. Die Entwickler können analytische Abfragen für die Replik schreiben und dabei dieselbe Syntax verwenden, um die Leistung zu verbessern.

MariaDB hat außerdem kürzlich die f-String-ähnliche Formatierung für Strings eingeführt, ähnlich wie Python. Das erspart Entwicklern, die MariaDB mit Python verwenden, das lästige Umschalten zwischen den Sprachen.

MariaDB Python Konnector

Vor 2020 konnten Python-Programmierer die Verbindung zu MariaDB über das MySQL-Python-Paket herstellen. Das war möglich, weil MariaDB eine Abspaltung von MySQL ist, aber es bedeutete, dass sich MariaDB-Verbindungen genauso verhielten wie MySQL.

Im Jahr 2020 wurde ein nativer MariaDB-Konnektor veröffentlicht, um die Abhängigkeit von MySQL zu beseitigen und der MariaDB-Gemeinschaft mehr Kontrolle zu geben. Du kannst den Konnektor mit pip, dem Paketmanager von Python, installieren und ihn für alle gängigen CRUD-Anwendungsfälle nutzen.

Alle Anweisungen werden über ein Cursor-Objekt verwaltet. Standardmäßig akzeptiert der MariaDB-Cursor Abfragen als vorbereitete Anweisungen, sodass du alle dynamischen Teile der Abfrage bereinigen kannst. Das ist sicherer als die Formatierung von Strings zur Erstellung von Abfragen, die deine Anwendung anfällig für SQL-Injection-Angriffe macht.

So funktioniert der Konnector

Der Konnector ist einfach zu benutzen. Zuerst importierst du die MariaDB-Konnector-Bibliothek in deine Anwendung und verwendest die folgende Funktion, um dich mit deinem MariaDB-Datenbankserver zu verbinden:

import mariadb

try:
    connection = mariadb.connect(
        user=username,
        password=password,
        host=mariadb_host,
        port=3306,
        database="sales"

    )
except mariadb.Error as err:
    print(f"An error occurred whilst connecting to MariaDB: {err}")

Sobald die Verbindung hergestellt ist, werden alle Abfragen über ein Cursor-Objekt ausgeführt. Du erhältst das Cursor-Objekt und verwendest es dann, um Abfragen zu stellen.

cursor = conn.cursor() 

Um eine Abfrage als vorbereitete Anweisung zu übermitteln, verwendest du ein Fragezeichen als Platzhalter im Abfragetext und gibst die erforderlichen Werte als Tupel ein.

ur.execute( "SELECT * FROM sales WHERE sale_date >= ? and price > ?", (sale_date_val, price_val)) 

Die Eingabewerte aus dem Tupel ersetzen die Fragezeichen in der Reihenfolge von links nach rechts. Diese Eingabewerte werden ebenfalls bereinigt, um SQL-Injection zu verhindern. Der eingebaute Schutz vor SQL-Injection ist für eine Sprache wie Python, die für Programmieranfänger/innen entwickelt wurde, von Vorteil.

Python und MariaDB für WordPress

Ein weiterer Vorteil von MariaDB als Backend für deine Python-Anwendung ist, dass es einfach ist, die Datenbank mit einem WordPress-Frontend zu verbinden, besonders wenn du Kinsta verwendest.

Kinsta unterstützt MariaDB als Backend-Datenbank, so dass sie sofort kompatibel sind. Deine WordPress-Seite kann ganz einfach auf Datensätze zugreifen, die in Python verarbeitet wurden. Du kannst zum Beispiel eine Analyse in Python durchführen, die Ergebnisse in MariaDB speichern und sie dann als Diagramm auf einer WordPress-Seite anzeigen.

Kinsta bietet auch eine Entwicklungsplattform namens DevKinsta für die Entwicklung einer Komplettlösung. Mit DevKinsta kannst du auf deinem lokalen Rechner eine WordPress-Website mit einem MariaDB-Backend einrichten, die dann zu Kinsta übertragen werden kann, sobald sie bereit ist, live zu gehen. Dank dieser Integration ist es ganz einfach, eine Website mit einer MariaDB-Datenbank einzurichten – mit nur wenigen Klicks ist deine Website live.

Zusammenfassung

Mehrere relationale Open-Source-Datenbanken, darunter MariaDB, MySQL und Postgres, können als Python-Backend dienen. MariaDB ist jedoch die flexibelste und funktionsreichste Option, da sie Open Source ist.

Bei der Arbeit mit großen Datenmengen bietet MariaDB viele Speicher-Engines, wodurch es schneller als die Alternativen ist, und unterstützt zahlreiche Anwendungsfälle, von der Transaktionsverarbeitung bis zu analytischen Abfragen. Die Flexibilität, die Geschwindigkeit und die native Python-Integration mit dem MariaDB Python Konnector machen MariaDB zu einer guten Wahl als Backend für Python-Anwendungen, die große Datenmengen verarbeiten.

Außerdem lässt sich MariaDB direkt in ein WordPress-Frontend einbinden, sodass deine Datensätze auch auf deiner Website zugänglich sind. Die MariaDB-Unterstützung von Kinsta macht diese Integration noch reibungsloser. Mit DevKinsta kannst du deine WordPress-Website so konfigurieren, dass sie MariaDB auf deinem lokalen Rechner nutzt, bevor du die Lösung über Kinsta bereitstellst.

Teste unser Datenbank-Hosting jetzt kostenlos.

Jeremy Holcombe Kinsta

Content & Marketing Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems ;).