Wat is MariaDB?
MariaDB is een open source, relationeel databasemanagementsysteem (DBMS). MariaDB heeft een licentie onder de GNU General Public License versie 2 (GPLv2) en is opgenomen in de meeste grote Linux-distributies.
De codebase van MariaDB Server wordt ontwikkeld en onderhouden door de MariaDB Foundation en kan worden gedownload van GitHub. De open source licentie zorgt ervoor dat iedereen MariaDB vrij kan gebruiken, wijzigen en verspreiden, op voorwaarde dat ze voldoen aan de GPLv2-voorwaarden.
Techopedia legt uit wat MariaDB betekent
MariaDB is ontstaan als een splitsing van MySQL in 2009, met de focus op het behoud van de eenvoud en prestaties van MySQL en tegelijkertijd op innovatie in het databaselandschap.
De naam “MariaDB” is belangrijk omdat het Maria eert, de dochter van de maker, Michael “Monty” Widenius. Deze naamgeving weerspiegelt niet alleen een voortzetting van MySQL’s nalatenschap, maar ook een toewijding aan een community-gedreven project. MariaDB is uitgegroeid tot een gezamenlijke inspanning die wordt ondersteund door ontwikkelaars en organisaties wereldwijd.
Naast de symbolische wortels is MariaDB een praktische oplossing voor bedrijven en ontwikkelaars die op zoek zijn naar een robuust, open source database management systeem.
Het belang van MariaDB
Door de jaren heen zijn MariaDB Community Server en MariaDB Enterprise Server een populaire RDBMS-keuze geworden voor ontwikkelaars, bedrijven en technologieliefhebbers. De wijdverspreide toepassing van MariaDB Server door grote Linux distro’s onderstreept het belang en het vertrouwen van het databasemanagementsysteem binnen de technische gemeenschap.
Volgens onderzoek van Stack Overflow staat MariaDB op de zevende plaats van meest populaire databases onder professionele ontwikkelaars.
MariaDB Geschiedenis
Toen Oracle in 2010 Sun Microsystems en MySQL overnam, maakte Michael “Monty” Widenius, een van de oorspronkelijke ontwikkelaars van MySQL, zich zorgen over de toekomst van het open source relationele databasebeheersysteem (RDMS) onder Oracle’s propriëtaire leiding.
Als reactie daarop besloten Widenius en een aantal andere MySQL-ontwikkelaars MySQL te forken. De fork was oorspronkelijk ontworpen om binair compatibel te zijn met MySQL.
Dit betekent dat bij de start van de fork en voor verschillende volgende versies, applicaties die waren ontworpen voor MySQL konden draaien op MariaDB zonder de noodzaak om applicatiecode of databaseschema’s aan te passen.
Na verloop van tijd is de mate van strikte binaire compatibiliteit tussen de twee relationele databasemanagementsystemen echter afgenomen.
Wat is het verschil tussen MariaDB en MySQL?
Hoewel MariaDB en MySQL nog steeds zeer compatibel zijn op het niveau van de gestructureerde querytaal (SQL), zijn er nu een aantal verschillen in functies, uitbreidingen, opties voor de opslagmotor en prestatie-optimalisaties die drop-in gebruik kunnen beperken.
In de onderstaande tabel staan enkele van de belangrijkste verschillen tussen het huidige MariaDB en MySQL.
Functie | MariaDB | MySQL |
JSON-gegevens verwerken | Slaat JSON op in strings. Ondersteunt JSON_QUERY en JSON_EXISTS. JSON datatype is een alias voor LONGTEXT sinds versie 10.2. | Slaat JSON op als binaire objecten. Ondersteunt JSON_TABLE. Ondersteunt JSON_QUERY en JSON_EXISTS niet. |
Functionaliteit | Ondersteunt onzichtbare kolommen, engines voor sequentieopslag, virtuele kolommen en het gebruik van meerdere engines in één tabel. | Biedt dynamische kolommen voor gegevenswaarden en gegevensmaskering. |
Gebruikersauthenticatie | Bevat drie validatieplugins en de ed25519 authenticatieplugin voor veilige authenticatie. | Bevat een validate_password component voor wachtwoordbeveiliging. |
Encryptie | Ondersteunt binaire logcodering en codering van tijdelijke tabellen. | Staat versleuteling toe van redo- en undo-logs, maar niet van tijdelijke tablespace of binaire logs. |
Threadpooling | Inclusief thread pooling in de gratis gemeenschapseditie. | Threadpooling is een betaalde functie in de enterprise versie van MySQL. |
Schaalbaarheid en prestaties | Ontworpen om schaalbaar te zijn en een hoge zoeksnelheid te bieden. | Vertoont langzamere responstijden in een aantal benchmarks en praktische opstellingen. |
Opslagmotoren | Ondersteunt een groot aantal storage-engines, waaronder XtraDB, Aria, MariaDB ColumnStore. | Biedt minder opties. |
Compatibiliteit Oracle Database | Ondersteunt PL/SQL sinds versie 10.3. | Ondersteunt PL/SQL niet. |
Stichting MariaDB
MariaDB wordt beheerd door een non-profit organisatie genaamd de MariaDB Foundation. De gemeenschap van bijdragers van de Foundation is verantwoordelijk voor het onderhouden van de MariaDB-documentatie, het accepteren van codepatches, het zorgen dat releases stabiel zijn en het bevorderen van samenwerking en het delen van kennis over MariaDB onder gebruikers en ontwikkelaars.
De Foundation speelt een belangrijke rol in het garanderen dat de MariaDB Server open blijft en vrij van de controle van een enkele commerciële entiteit. Financiering voor de Foundation komt voornamelijk van sponsoring en donaties van organisaties en individuen die MariaDB gebruiken.
MariaDB Corporation
MariaDB plc, voorheen bekend als MariaDB Corporation, is een commerciële onderneming die eigen producten verkoopt die bovenop de open source MariaDB Server zijn gebouwd.
Het onderscheid tussen MariaDB Community Server en MariaDB Enterprise Server is vergelijkbaar met andere open source projecten die zowel community als enterprise edities aanbieden.
Bij het bespreken of kiezen van MariaDB voor een project is het belangrijk om aan te geven naar welke versie wordt verwezen, omdat de keuze een aanzienlijke invloed kan hebben op de beschikbare functies, ondersteuning en algemene geschiktheid voor een bepaalde toepassing of computeromgeving.
MariaDB server
MariaDB Server, ook bekend als MariaDB Community Server, is de naam van het open source softwarepakket voor MariaDB dat gebruikers gratis kunnen installeren en draaien.
De belangrijkste kenmerken van de MariaDB Community Server-editie zijn:
- Ondersteuning voor SQL en NoSQL: Biedt uitgebreide ondersteuning voor SQL en NoSQL flexibele gegevenstoegangspatronen.
- Opslagengines: Bevat een verscheidenheid aan opslagengines, zoals InnoDB voor ACID-conforme transacties en betrouwbaarheid, MyRocks voor efficiënte opslag en prestaties, en Aria voor caching en tijdelijke tabellen.
- Replicatie: Ondersteunt geavanceerde replicatiefuncties voor databases, waaronder standaard replicatie van MariaDB- en MySQL-servers, Galera Cluster voor synchrone multi-master replicatie en de mogelijkheid om verschillende replicatieformaten te gebruiken (zoals rij-gebaseerd, statement-gebaseerd of gemengd).
- Beveiligingsfuncties: Wordt standaard geleverd met sterke beveiligingsfuncties, waaronder database-encryptie, SSL-ondersteuning (Secure Sockets Layer), rolgebaseerde toegangscontrole en audit-plugins voor het monitoren en bijhouden van database-activiteiten.
- Query optimalisatie: Biedt geavanceerde functies voor queryoptimalisatie en indexen, waaronder Javascript Object Notation (JSON)-functies, gemeenschappelijke tabeluitdrukkingen (CTE’s) en ondersteuning voor geografische informatiesystemen voor ruimtelijke gegevens.
- Compatibiliteitsfuncties: Maakt het makkelijker voor gebruikers om van MySQL naar MariaDB te migreren door vergelijkbare syntaxis, commando’s en API’s.
- Open Source tools en plugins: Omvat een breed scala aan tools en plugins voor databasebeheer, monitoring en prestatie-afstemming.
- Cloud Ondersteuning: Vergemakkelijkt implementatie in gecontaineriseerde omgevingen door ondersteuning te bieden voor Docker en Kubernetes.
Gebruikscases
MariaDB Community Server is een veelzijdig en kosteneffectief databasebeheersysteem voor een groot aantal verschillende toepassingen. Populaire gebruikssituaties voor MariaDB Server zijn onder andere:
- Webtoepassingen en websites: MariaDB wordt vaak gebruikt als backend database voor webapplicaties en websites om gebruikersgegevens, berichten, instellingen en andere dynamische content op te slaan. Het ondersteunt een breed scala aan programmeertalen, zoals PHP, Python, Java en Ruby, en de compatibiliteit met MySQL betekent dat het naadloos samenwerkt met populaire webontwikkelingsstacks zoals LAMP (Linux, Apache, MySQL, PHP) en MEAN (MongoDB, Express.js, Angular, Node.js).
- Platformen voor e-commerce: MariaDB biedt de prestaties en functies die nodig zijn om grote hoeveelheden transacties en klantgegevens te verwerken. Het vermogen om te schalen en replicatie te ondersteunen helpt ervoor te zorgen dat e-commerce sites responsief en beschikbaar blijven, zelfs tijdens piekuren.
- Content Management Systemen (CMS): Veel populaire CMS platformen zoals WordPress, Drupal en Joomla zijn compatibel met MariaDB. Uitgevers kunnen het relationele DBMS gebruiken om website-inhoud, gebruikersprofielen, opmerkingen, configuratiegegevens en aangepaste gegevenstypen op te slaan en te beheren. De prestatieoptimalisaties van MariaDB staan bekend om het efficiënt leveren van webinhoud en het verbeteren van de gebruikerservaring op sites met veel inhoud.
- Cloud-toepassingen: De compatibiliteit van MariaDB met cloudomgevingen maakt het een uitstekende keuze voor cloudgebaseerde toepassingen. Het vermogen van de RDBMS om grote databases aan te kunnen en horizontaal te schalen, vooral in combinatie met functies zoals Galera Cluster voor synchrone multi-master replicatie, zorgt voor een hoge beschikbaarheid en duurzaamheid van gegevens in AWS, Google Cloud en Azure cloudomgevingen.
- Bedrijfstoepassingen: Grote ondernemingen kunnen MariaDB gebruiken voor hun interne enterprise resource planning (ERP), customer relationship management (CRM) en aangepaste bedrijfstoepassingen die een betrouwbaar databasesysteem vereisen.
- Speltoepassingen: De prestaties en schaalbaarheid van MariaDB ondersteunen de hoge doorvoer en lage latentievereisten van gamingtoepassingen. Het RDBMS kan worden gebruikt voor gebruikersauthenticatie, sessiebeheer, leaderboards en het opslaan van game-statusgegevens.
- IoT-toepassingen: MariaDB kan worden gebruikt voor het opslaan en verwerken van gegevens van sensoren en randcomputers. Het vermogen om grote volumes van kleine transacties te verwerken maakt het geschikt voor real-time monitoring, het loggen van monitoringgebeurtenissen en beslissingen met betrekking tot tijdreeksgegevens.
- Financiële diensten: MariaDB kan de betrouwbaarheid, veiligheid en transactionele integriteit bieden die nodig zijn voor toepassingen als online bankieren, betalingsverwerking en fraudedetectie. De geavanceerde cyberbeveiligingsfuncties kunnen helpen om gevoelige financiële gegevens te beschermen in overeenstemming met de regelgeving in de sector.
MariaDB Server vs. MariaDB Enterprise Server
MariaDB Server (ook bekend als MariaDB Community Server) moet niet verward worden met MariaDB Enterprise Server, een gecommercialiseerd DBMS gebouwd op de MariaDB codebase.
Terwijl de kern van MariaDB Enterprise Server open source is, bevat het enterprise server pakket eigen componenten en plugins ontwikkeld door MariaDB plc (voorheen MariaDB Corporation).
Volgens PredictiveAnalyticsToday.com kost MariaDB Enterprise ongeveer $5000/server/jaar.
Hier is een vergelijkingstabel met de belangrijkste verschillen tussen MariaDB Server en MariaDB Enterprise Server:
MariaDB Server | MariaDB Enterprise Server | |
Licentie | Vrij beschikbaar onder de GNU General Public License. | Hiervoor is een betaald abonnement vereist. |
Belangrijkste functies | Bevat standaard DBMS-functies die geschikt zijn voor de meeste toepassingen. | Bevat alle functies van MariaDB Server plus extra bedrijfsgerichte verbeteringen. |
Prestaties en schaalbaarheid | Staat bekend om zijn prestaties en schaalbaarheid. | Geoptimaliseerd voor bedrijfsbelastingen. |
Beveiliging | Biedt standaard beveiligingsfuncties. | Biedt geavanceerde beveiligingsfuncties op maat van bedrijfsvereisten. |
Gereedschap | Biedt basistools voor back-up en bewaking. | Biedt een verscheidenheid aan storage-engines voor bedrijfsbehoeften. |
Ondersteuning en diensten | Gemeenschapsondersteuning via forums en documentatie | Professionele 24/7 ondersteuning, consultancy en trainingsdiensten van MariaDB plc. |
Doelgroep | Ontwikkelaars, enthousiastelingen en organisaties die op zoek zijn naar een open source database. | Bedrijven en ondernemingen die een robuuste databaseoplossing met commerciële ondersteuning nodig hebben. |
Doelgebruikscasus | Ontwikkelaars, kleine tot middelgrote bedrijven en kostenbewuste implementaties in niet-kritieke omgevingen. | Op maat gemaakt voor bedrijfskritische applicaties en werklasten die hoge betrouwbaarheid, prestaties en 24/7 ondersteuning vereisen. |
Hoe MariaDB Server installeren
MariaDB Community Server en MariaDB Enterprise server zijn cross-platform ontworpen.
Hoewel de kernconcepten van MariaDB consistent blijven op Linux, Microsoft Windows en macOS platformen, kunnen de tools en methodes die nodig zijn om de database te implementeren en te beheren aanzienlijk verschillen door verschillen in bestandssystemen, standaard beveiligingsinstellingen, commandoregeltools en systeemservices.
De officiële MariaDB website biedt gedetailleerde installatiegidsen, configuratie-instructies en best practices voor specifieke besturingssystemen. De gemeenschap heeft veel tijd en moeite geïnvesteerd in het documenteren van hoe gebruikers hun MariaDB-installaties correct kunnen installeren, configureren en onderhouden, ongeacht het onderliggende platform.
MariaDB’s ColumnStore
MariaDB gebruikt rij-gebaseerde opslag als standaard manier om gegevens te organiseren. Deze aanpak is goed geschikt voor transactionele gegevens, maar is niet efficiënt voor datawarehousing en bedrijfsanalyses.
MariaDB pakt dit probleem aan door gebruikers de optie te bieden om een ColumnStore engine te installeren en te gebruiken die de queryprestaties voor grote datasets verbetert.
ColumnStore organiseert gegevens op basis van kolommen in plaats van rijen. Elke kolom met gegevens wordt apart opgeslagen, wat ideaal is voor OLAP-toepassingen (Online Analytical Processing) en massaal parallelle verwerking (MPP).
Hiermee kunnen query’s worden verdeeld over meerdere nodes voor snellere verwerking, wat vooral gunstig is voor realtime analyse en big data toepassingen.
De mogelijkheid om te kiezen tussen InnoDB en ColumnStore (of zelfs beide te gebruiken binnen dezelfde MariaDB instance voor verschillende tabellen) maakt het mogelijk om MariaDB effectief te gebruiken voor een breed scala aan databasetoepassingen.
Query voorbeelden
Alle MariaDB query’s, ongeacht de onderliggende storage engine (rij-gebaseerd of ColumnStore), gebruiken standaard SQL syntaxis. Deze uniformiteit betekent dat ontwikkelaars hun bestaande SQL-kennis kunnen toepassen om met MariaDB te werken en kunnen wisselen tussen transactionele en analytische werklasten zonder een nieuwe querytaal te hoeven leren.
De volgende queryvoorbeelden behandelen basisbewerkingen in MariaDB en SQL in het algemeen.
Tabel aanmaken
Dit voorbeeld demonstreert hoe je een tabel aanmaakt om gebruikersinformatie in op te slaan.
Deze query maakt een tabel aan met de naam users met vier kolommen: id (een unieke identificatie voor elke gebruiker die automatisch wordt aangevuld), username (de naam van de gebruiker), email (het e-mailadres van de gebruiker) en created_at (een tijdstempel voor wanneer de gebruiker is aangemaakt).
Gegevens invoegen
Dit voorbeeld toont hoe je een nieuwe gebruiker in de tabel users invoegt.
Deze query voegt een nieuwe rij in de tabel users in met de gebruikersnaam john_doe en het e-mailadres [email protected]. De id kolom wordt automatisch aangevuld en de created_at kolom wordt standaard ingesteld op de huidige tijdstempel.
Gegevens opvragen
Dit voorbeeld toont hoe je berichten kunt ophalen die bij een specifieke gebruiker horen, ervan uitgaande dat de tabel Berichten een vreemde sleutel user_id heeft die verwijst naar de id in de tabel Gebruikers.
Deze query selecteert de titel, inhoud en aanmaaktijdstempel van alle berichten gemaakt door de gebruiker met de gebruikersnaam john_doe, waarbij de resultaten worden gerangschikt op de created_at tijdstempel in aflopende volgorde, waarbij de meest recente berichten eerst worden getoond.