SQL fallisce a 3+ salti. I GraphDB no. Immagina di trovare tutti gli account entro 3 salti da una transazione sospetta. O di collegare record di clienti frammentati tra sistemi tramite email e numeri di telefono condivisi. Queste sono query di traversata del grafo. SQL può gestire le relazioni ma non la profondità. Certo, puoi scrivere CTE ricorsivi e self-join. Funziona a 1-2 salti. Ma vai più in profondità e succedono due cose: - La query diventa illeggibile - E le prestazioni crollano Ogni salto aggiunge un altro self-join. A salto 5-6, stai guardando query che girano per minuti e si rompono sotto carico. La stessa query in Cypher: 𝗠𝗔𝗧𝗖𝗛 (𝘁:𝗧𝗿𝗮𝗻𝘀𝗮𝗰𝘁𝗶𝗼𝗻 {𝗶𝗱: '𝗧𝗫𝗡-𝟬𝟬𝟭'})-[:𝗜𝗡𝗩𝗢𝗟𝗩𝗘𝗦*𝟭..𝟯]-(𝗮:𝗔𝗰𝗰𝗼𝘂𝗻𝘁) 𝗥𝗘𝗧𝗨𝗥𝗡 𝗗𝗜𝗦𝗧𝗜𝗡𝗖𝗧 𝗮.𝗻𝗮𝗺𝗲, 𝗮.𝗽𝗵𝗼𝗻𝗲 3 righe. Legge come la domanda che stai ponendo. Scala a qualsiasi profondità. Questo è ciò per cui sono costruiti i database a grafo. FalkorDB è uno da conoscere. È open-source. E adotta un approccio architettonico diverso rispetto alla maggior parte dei GraphDB. La maggior parte dei database a grafo insegue puntatori da nodo a nodo durante la traversata. FalkorDB non fa così. È costruito su GraphBLAS, un framework di algebra lineare che rappresenta le operazioni grafiche come calcoli di matrici sparse. Ogni salto diventa un'operazione di matrice ottimizzata invece. Il risultato: - Migliore comportamento della cache - Computazione parallela attraverso i salti...