Databases

Bijna alle sites en webapplicaties hebben een database nodig om gegevens op te slaan. Welke database geschikt is voor uw toepassing hangt sterk af van het gebruik en de functie. 
 

MySQL
MySQL is een relationele database geschikt om gegevens op slaan. Het is over het algemeen snel en flexivel in gebruik. MySQL sluit naadloos aan op Laravel en vele andere applicaties. MySQL is een van de meest populaire databasesystemen.

 

MariaDB

MariaDB is een vertakking van MySQL. Het heeft grotendeels dezelfde functionaliteiten en kan als vervanging van MySQL worden gebruikt. De ontwikkelaars van MariaDB garanderen dat het een open source databasesysteem blijft.
 

ElesticSearch 
ElesticSearch is een ander type database dan het veel bekendere en door ons veel gebruikte MySQL / SQL. ElasticSearch is een non-ralational database. Maar wat betekent dat en wanneer is dit een goede keuze?

 

MongoDB

MongoDB is een non-relationele database (noSQL), de documenten worden opgeslagen in JSON. Het is enigszins vergelijkbaar met ElasticSearch. Met MongoDB kun je data opslaan zonder vast schema. Daarnaast is het snel en kunt u heel veel opslaan.

 

Waar letten wij op?

  • Welk type gegevens wilt u opslaan
  • Hoe wilt u met de gegevens werken
  • Hoeveel gegevens wilt u opslaan
  • Hoe snel moet het zijn
  • Hoe betrouwbaar moet het zijn
  • Wat is kostenefficiënt

ElasticSearch VS MySQL

ElasticSearch is een database die bedoeld is om veel data op te slaan en snel te doorzoeken. We spreken dan van zogenaamde Big Data omdat dit teveel is om in een reguliere database op te slaan. ElasticSearch gebruikt bijvoorbeeld het werkgeheugen om grote delen van zijn database in te laden en is daarmee veel sneller dan een MySQL database die veel meer lees- en schijf handelingen moet doen op de harde schijf. ElasticSearch is Near Real time, het kan zoeken in een database van 100 miljoen producten binnen 100 miliseconden.

 

Een MySQL database is een relationele database waarmee gemakkelijk relaties tussen tabellen kunnen worden gelegd. Op MySQL kunt u een hele webwinkel draaien of een hele applicatie. ElasticSearch gebruik je voor een beperkt deel van de applicatie, alleen waar de performance van belang is. Denk dan bijvoorbeeld aan een snel zoek systeem waarmee u kunt zoeken en filteren door miljoenen producten. ElasticSearch zult u juist niet gebruiken voor het opslaan van wachtwoorden of facturen gekoppeld aan diensten. ElasticSearch is dus bedoeld voor heel veel data snel doorzoekbaar maken, het is daarom zo ontwikkeld dat het systeem schaalbaar is over verschillende servers, zoekopdrachten kunnen worden verdeeld over vele servers en de trage hardeschijf of ssd wordt ontzien. Voor het gebruiken van een elasticSearch database is het ideaal om meerdere servers te gebruiken. MySQL draait juist bijna altijd op één server en kan moeilijk worden gerepliceerd naar een andere server. Elke wijziging moet dan worden gesynchroniseerd naar server twee. Dit is niet ideaal als u bijvoorbeeld uw e-mail adres aanpast en het duurt een tijd voor de aanpassing is uitgevoerd.

 

ElasticSearch is dus geen vervanging van MySQL maar vervult vaak de functies in van MySQL waar MySQL te traag voor zou zijn. Zoals het zoeken door de beschrijvingen van 10 miljoen producten. ElasticSearch is uiterst schaalbaar is kan feilloos blijven werken ook als een van de servers uitvalt. Data wordt automatisch gerepliceerd zonder dat de server in de tussentijd geblokkeerd wordt. Andere mooie voordelen van ElasticSearch zijn de Full text Search en automatische aanvulling en ordening op basis van relevatie bij zoeken.

 

Wij gebruiken ElasticSearch zelf bijvoorbeeld voor een snelle filtering op Stoelenvinden.nl. De zoekresultaten kunnen uiterst snel worden berekend en unieke niet vooraf te voorspellen filtering is geen probleem.

Wilt u een database die schaalbaar is omdat u veel bezoekers verwacht of wilt u heel veel data opslaan en snel kunnen zoeken? Dan is ElasticSearch een database die dat mogelijk maakt.