SQL faalt bij 3+ hops. GraphDB's niet. Stel je voor dat je alle accounts binnen 3 hops van een verdachte transactie vindt. Of gefragmenteerde klantrecords over systemen heen koppelt via gedeelde e-mails en telefoonnummers. Dit zijn graf traversiequeries. SQL kan relaties aan, maar niet de diepte. Natuurlijk, je kunt recursieve CTE's en zelf-joins schrijven. Dat werkt bij 1-2 hops. Maar ga dieper en er gebeuren twee dingen: - De query wordt onleesbaar - En de prestaties kelderen Elke hop voegt een andere zelf-join toe. Bij hop 5-6 kijk je naar queries die minuten duren en onder belasting uit elkaar vallen. Dezelfde query in Cypher: 𝗠𝗔𝗧𝗖𝗛 (𝘁:𝗧𝗿𝗮𝗻𝘀𝗮𝗰𝘁𝗶𝗼𝗻 {𝗶𝗱: '𝗧𝗫𝗡-𝟬𝟬𝟭'})-[:𝗜𝗡𝗩𝗢𝗟𝗩𝗘𝗦*𝟭..𝟯]-(𝗮:𝗔𝗰𝗰𝗼𝘂𝗻𝘁) 𝗥𝗘𝗧𝗨𝗥𝗡 𝗗𝗜𝗦𝗧𝗜𝗡𝗖𝗧 𝗮.𝗻𝗮𝗺𝗲, 𝗮.𝗽𝗵𝗼𝗻𝗲 3 regels. Leest als de vraag die je stelt. Schaalbaar naar elke diepte. Dit is waar grafdatabases voor zijn gebouwd. FalkorDB is er een die het waard is om te kennen. Het is open-source. En het neemt een andere architectonische benadering in vergelijking met de meeste graf DB's. De meeste grafdatabases volgen aanwijzingen van knoop naar knoop tijdens traversie. FalkorDB doet dat niet. Het is gebouwd op GraphBLAS, een lineaire algebra framework dat grafoperaties vertegenwoordigt als spaarzame matrixberekeningen. Elke hop wordt in plaats daarvan een geoptimaliseerde matrixbewerking. Het resultaat: - Betere cachegedrag - Parallelle berekening over hops...