Tópicos populares
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
O SQL falha em 3+ saltos. Os GraphDBs não.
Imagine encontrar todas as contas dentro de 3 saltos de uma transação suspeita. Ou ligar registos de clientes fragmentados entre sistemas por e-mails e números de telefone partilhados.
Estas são consultas de travessia de grafo. O SQL pode lidar com relacionamentos, mas não com profundidade.
Claro, você pode escrever CTEs recursivos e auto-junções. Isso funciona em 1-2 saltos. Mas ao ir mais fundo, duas coisas acontecem:
- A consulta torna-se ilegível
- E o desempenho despenca
Cada salto adiciona outra auto-junção. Ao salto 5-6, você está olhando para consultas que demoram minutos e desmoronam sob carga.
A mesma consulta em Cypher:
𝗠𝗔𝗧𝗖𝗛 (𝘁:𝗧𝗿𝗮𝗻𝘀𝗮𝗰𝘁𝗶𝗼𝗻 {𝗶𝗱: '𝗧𝗫𝗡-𝟬𝟬𝟭'})-[:𝗜𝗡𝗩𝗢𝗟𝗩𝗘𝗦*𝟭..𝟯]-(𝗮:𝗔𝗰𝗰𝗼𝘂𝗻𝘁)
𝗥𝗘𝗧𝗨𝗥𝗡 𝗗𝗜𝗦𝗧𝗜𝗡𝗖𝗧 𝗮.𝗻𝗮𝗺𝗲, 𝗮.𝗽𝗵𝗼𝗻𝗲
3 linhas. Lê-se como a pergunta que você está fazendo. Escala para qualquer profundidade.
É para isso que os bancos de dados de grafos foram construídos.
O FalkorDB é um que vale a pena conhecer. É de código aberto. E adota uma abordagem arquitetónica diferente em comparação com a maioria dos Graph DBs.
A maioria dos bancos de dados de grafos persegue ponteiros de nó para nó durante a travessia. O FalkorDB não faz isso. É construído sobre o GraphBLAS, uma estrutura de álgebra linear que representa operações de grafo como cálculos de matriz esparsa. Cada salto torna-se uma operação de matriz otimizada.
O resultado:
- Melhor comportamento de cache
- Cálculo paralelo entre saltos...
Top
Classificação
Favoritos
