Актуальные темы
#
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.
SQL не справляется с 3+ переходами. GraphDB справляются.
Представьте, что вы находите все аккаунты в пределах 3 переходов от подозрительной транзакции. Или связываете фрагментированные записи клиентов между системами по общим электронным адресам и номерам телефонов.
Это запросы на обход графа. SQL может обрабатывать отношения, но не глубину.
Конечно, вы можете написать рекурсивные CTE и самосоединения. Это работает на 1-2 переходах. Но если углубиться, происходит две вещи:
- Запрос становится нечитаемым
- И производительность падает
Каждый переход добавляет еще одно самосоединение. На 5-6 переходах вы смотрите на запросы, которые выполняются в течение минут и разваливаются под нагрузкой.
Тот же запрос в Cypher:
𝗠𝗔𝗧𝗖𝗛 (𝘁:𝗧𝗿𝗮𝗻𝘀𝗮𝗰𝘁𝗶𝗼𝗻 {𝗶𝗱: '𝗧𝗫𝗡-𝟬𝟬𝟭'})-[:𝗜𝗡𝗩𝗢𝗟𝗩𝗘𝗦*𝟭..𝟯]-(𝗮:𝗔𝗰𝗰𝗼𝘂𝗻𝘁)
𝗥𝗘𝗧𝗨𝗥𝗡 𝗗𝗜𝗦𝗧𝗜𝗡𝗖𝗧 𝗮.𝗻𝗮𝗺𝗲, 𝗮.𝗽𝗵𝗼𝗻𝗲
3 строки. Читается как вопрос, который вы задаете. Масштабируется на любую глубину.
Для этого и созданы графовые базы данных.
FalkorDB — это то, о чем стоит знать. Это с открытым исходным кодом. И он использует другой архитектурный подход по сравнению с большинством графовых БД.
Большинство графовых баз данных преследуют указатели от узла к узлу во время обхода. FalkorDB этого не делает. Он построен на GraphBLAS, фреймворке линейной алгебры, который представляет операции графа как разреженные матричные вычисления. Каждый переход становится оптимизированной матричной операцией.
Результат:
- Лучшее поведение кэша
- Параллельные вычисления по переходам...
Топ
Рейтинг
Избранное
