Het kiezen van de juiste database voor je applicatie is belangrijk, vooral voor backend applicaties die direct met de database communiceren. Er zijn veel opties beschikbaar, elk geschikt voor bepaalde applicaties en met verschillende prijzen, snelheden en schaalmogelijkheden.

Python wordt meestal gebruikt in gegevensintensieve applicaties omdat het krachtige bibliotheken bevat voor gegevensmanipulatie, dus de database die je gebruikt voor een Python applicatie is belangrijk.

Dit artikel vergelijkt MariaDB met andere databasetechnologieën zoals MySQL en PostgreSQL en bespreekt waarom het een goede keuze is bij het gebruik van Python.

Wat maakt MariaDB zo geweldig voor Python?

Dankzij de krachtige bibliotheken voor datamanipulatie en machinelearning is Python een populaire programmeertaal voor mensen die met veel data werken – vooral in data engineering en data science. Beide vakgebieden hebben te maken met grote hoeveelheden gegevens, waardoor de benodigde opslag en geheugen en verwerkingskracht toenemen.

Licentiekosten stijgen vaak mee met de omvang van je gegevens, dus is het zinvol om een open-source database te gebruiken. Je kunt ook geld besparen op hardware. Omdat je volledige controle hebt over waar de applicatie wordt ingezet, kun je de goedkoopste oplossingen vinden in de cloud of on-premises.

Er bestaan veel open-source databases, waaronder relationele, NoSQL en grafische databases. Relationele databases zijn over het algemeen goed voor structuur en consistentie, terwijl NoSQL databases, die snelle ontwikkeling mogelijk maken, ontworpen zijn om flexibeler te zijn.

Hoewel Python prima werkt met NoSQL databases, zijn relationele databases beter geschikt voor de analyses en grootschalige gegevensverwerking die Python vaak gebruikt.

Laten we MariaDB vergelijken met enkele andere populaire open-source relationele databases.

MariaDB vs MySQL vs PostgreSQL

De populairste open-source relationele databases zijn MariaDB, SQLite, MySQL en PostgreSQL. Elk heeft een vergelijkbare reeks technische kernmogelijkheden, maar MariaDB heeft enkele unieke eigenschappen die haar het meest geschikt maken voor Python applicaties.

Bovendien is MariaDB open-source, dus de mogelijkheden zijn niet afhankelijk van een externe entiteit zoals MySQL, waarvan Oracle nu de eigenaar is. Hoewel de open-source gemeenschap nog steeds mogelijkheden kan voorstellen en toevoegen aan MySQL, beslist Oracle (dat een concurrerende database heeft) waar het heen gaat.

Aan de andere kant is MariaDB ontstaan nadat Oracle MySQL had overgenomen om een door de gemeenschap gestuurde aanpak van de ontwikkeling voort te zetten. Als gevolg daarvan heeft MariaDB een rijkere featureset, waaronder meer opslag-engines die zorgen voor betere prestaties voor queries en replicatie dan MySQL. Deze betere prestaties zijn belangrijk bij het werken met grote datasets.

De redenen om MariaDB boven PostgreSQL te verkiezen liggen iets genuanceerder, omdat PostgreSQL ook door de gemeenschap wordt aangedreven. PostgreSQL gebruikt echter zijn eigen BSD-achtige licentie, de PostgreSQL Licentie, die permissiever is dan de GNU licentie van MariaDB en gebruikers toestaat om closed-source uitbreidingen te maken.

Hoewel ze de gebruiker die de uitbreiding maakt ten goede komen, worden deze functies niet altijd gebruikt in de PostgreSQL kerndatabase, en ontwikkelaars kunnen zelfs geld vragen voor het gebruik van hun uitbreidingen. De GNU-licenties van MariaDB en MySQL staan niet toe dat nieuwe functies worden geprivatiseerd – alle nieuwe functionaliteit is vrij beschikbaar.

MariaDB en PostgreSQL beschikken over de rijkste featuresets. MariaDB heeft echter enkele handige mogelijkheden voor een Python backend. MariaDB gebruikt bijvoorbeeld één taal voor de interface met alle verschillende opslagsystemen – OLAP en OLTP systemen worden met dezelfde syntaxis aangestuurd, wat de last voor developers vermindert.

Je Python backend kan transactie-achtige gegevens schrijven naar MariaDB, die die gegevens kan kopiëren naar een storage engine die meer geschikt is voor analytische queries. Developers kunnen analytische queries schrijven tegen de replica met dezelfde syntaxis wat zorgt voor betere prestaties.

MariaDB introduceerde onlangs ook f-String-achtige markupvoor strings, vergelijkbaar met Python. Dit bespaart developers die MariaDB met Python gebruiken het mentaal wisselen tussen talen.

MariaDB Python connector

Voor 2020 maakten Python programmeurs verbinding met MariaDB via het MySQL Python pakket. Dit was mogelijk omdat MariaDB een fork is van MySQL, maar het betekende dat MariaDB verbindingen zich hetzelfde gedroegen als MySQL.

In 2020 werd een native MariaDB connector uitgebracht om de afhankelijkheid van MySQL op te heffen en de MariaDB gemeenschap meer controle te geven. Je kunt de connector installeren met pip, de pakketbeheerder van Python, en hem gebruiken voor alle gangbare CRUD-gebruiksgevallen.

Alle declarations worden beheerd via een cursor object. Standaard accepteert de MariaDB cursor queries als prepared statements, zodat je alle dynamische delen van de query kunt zuiveren. Dit is veiliger dan het formatteren van strings om queries op te bouwen, wat je applicatie kwetsbaar maakt voor SQL injectie aanvallen.

Hoe de connector werkt

De connector is eenvoudig te gebruiken. Eerst importeer je de MariaDB connector bibliotheek in je applicatie en gebruik je de volgende functie om verbinding te maken met je MariaDB databaseserver:

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}")

Eenmaal verbonden worden alle queries uitgevoerd via een cursor object. Je verkrijgt het cursor object en gebruikt het vervolgens om queries in te dienen.

cursor = conn.cursor() 

Om een query in te dienen als een prepared statement, gebruik je een vraagteken als placeholder in de query tekst en geef je de vereiste waarden door als een tupel.

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

De invoerwaarden van de tupel vervangen de vraagtekens in volgorde van links naar rechts. Deze invoerwaarden worden ook gezuiverd om SQL injectie te voorkomen. Ingebouwde bescherming tegen SQL injectie is gunstig voor een taal als Python, ontworpen met het oog op beginnende programmeurs.

Python en MariaDB voor WordPress

Een ander voordeel van het gebruik van MariaDB als backend voor je Python applicatie is dat je de database gemakkelijk kunt verbinden met een WordPress frontend, vooral als je Kinsta gebruikt.

Kinsta ondersteunt MariaDB als backend database, waardoor ze direct compatibel zijn. Je WordPress site kan gemakkelijk toegang krijgen tot datasets die in Python zijn verwerkt. Je kunt bijvoorbeeld wat analyses uitvoeren in Python, de resultaten opslaan in MariaDB, en ze dan als grafiek weergeven op een WordPress pagina.

Kinsta biedt ook een ontwikkelingsplatform genaamd DevKinsta voor het ontwikkelen van een end-to-end oplossing. Met DevKinsta kun je je lokale machine gebruiken om een WordPress site op te zetten met een MariaDB backend, die vervolgens naar Kinsta kan worden gepusht zodra hij klaar is om live te gaan. Deze integratie maakt het opzetten van een site met een MariaDB database eenvoudig – je website kan met een paar klikken live zijn.

Samenvatting

Meerdere open-source relationele databases, waaronder MariaDB, MySQL en Postgres, kunnen dienen als Python backend. MariaDB is echter de meest flexibele en featurerijke optie, dankzij zijn open-source karakter.

Bij het werken met grote datasets biedt MariaDB veel opslag-engines, waardoor het sneller is dan de alternatieven, en het ondersteunt meerdere gebruikssituaties, van transactionele verwerking tot analytische queries. De flexibiliteit, snelheid en native Python integratie met de MariaDB Python connector maken het een uitstekende keuze als backend voor Python applicaties die grote datasets verwerken.

Bovendien kan MariaDB direct worden aangesloten op een WordPress frontend, waardoor je datasets toegankelijk worden voor je website. Kinsta’s MariaDB ondersteuning maakt deze integratie soepeler. Met DevKinsta kun je je WordPress site configureren om MariaDB te gebruiken op je lokale machine, voordat je de oplossing via Kinsta deployt.

Probeer nu gratis onze Database Hosting.

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 ;).