SQL misslyckas vid 3+ hopp. GraphDBs gör det inte. Föreställ dig att hitta alla konton inom tre hopp från en misstänkt transaktion. Eller att länka fragmenterade kundregister över system via delade e-postadresser och telefonnummer. Detta är graftraverseringsfrågor. SQL kan hantera relationer men inte djup. Visst, du kan skriva rekursiva CTE:er och själv-joins. Det fungerar vid 1-2 hopp. Men går man djupare händer två saker: - Frågan blir oläslig - Och prestandatankarna Varje hopp lägger till ytterligare en självanslutning. Vid hopp 5-6 ser du frågor som pågår i flera minuter och faller isär under belastning. Samma fråga gäller Cypher: MATCH (t:Transaktion {id: 'TXN-001'})-[:INVOLVES*1.. 3]-(a:Konto) RETURNERA DISTINKT a.name, en telefon 3 rader. Det låter som frågan du ställer. Skalar till alla djup. Det är detta grafdatabaser är byggda för. FalkorDB är en som är värd att känna till. Det är öppen källkod. Och det kräver en annan arkitektur jämfört med de flesta grafdatabaser. De flesta grafdatabaser jagar pekare från nod till nod under traversering. FalkorDB gör inte det. Det är byggt på GraphBLAS, ett ramverk för linjär algebra som representerar grafoperationer som glesa matrisberäkningar. Varje hopp blir istället en optimerad matrisoperation. Resultatet: - Bättre cachebeteende - Parallell beräkning över hopp...