3 augusti, 2021

Grafdatabaser gör ditt system ultrasnabbt

Troligtvis alla utvecklare har hört talas om MySQL. Databasen som från början utvecklades av en svensk och idag används till en ohyggligt stor mängd hemsidor. Till och med min fina hemsida är byggd på MySQL. Det är dock en relativt långsam databas, så om jag exempelvis skulle bygga ett nytt google skulle jag aldrig få för mig att bygga det på SQL.

Men! Det finns nu en relativt okänd databastyp som kallas ”grafdatabas”. Den största av dem heter Neo4j och sättet den är byggd på gör så att det tar lika lång tid att göra en sökning bland 1000 resultat, som 100 000. Som exempel kan en viss sökning bland 1000 värden ta 2 millisekunder med båda typerna av databas, men med 100 000 värden i databaserna så tar det 100 gånger så lång tid för MySQL men fortfarande endast 2 millisekunder för Neo4j.

grafHur görs då detta? Jo en sån här fräsig grafdatabas är inte byggd i listor och tabeller, utan innehåller istället data (noder) med förbindelser (relationer). Det är på samma sätt som den mänskliga hjärnan är uppbyggd. När man vill söka från en nod till en annan så behöver man inte gå igenom hela databasen och jämföra alla resultat, utan databasen tar upp den röda tråden av relationer och går raka vägen till det rätta svaret. Antalet orelevanta resultat runtom har därför väldigt liten inverkan på söktiden.

Neo4j finns licensierat under GPL (öppen källkod) och kan laddas ner gratis. Bygger du större krävande system finns även företagslicensierade versioner, som naturligtvis kostar en hel del.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *