Здравствуйте!
Есть следующая задача: найти все возможные пути от точки до точки на сетевом графе. Связей в графе ~200M, лежат в MySQL Percona.
Пытаюсь решить задачу с помощью MariaDB &
OQGRAPH, но он либо показывает все узлы, в которые можно пойти из начальной точки (глубина = 1) latch=0 and origid=<x>, либо кратчайшуй путь между точками (latch=1|2 and origid=<x> and destid=<y>), либо все возможные пути из точки (latch=1 and origid=<x>).
Запрос на все возможные пути из точки (latch=1 and origid=<x>), в приципе, устраивал бы, если бы можно было ограничить пути путешествия по графу по точкам и глубине (с помощью linkid not in(x...) and weight=<z>, где <z> — всегда одинаковый для всех узлов), но у меня складывается ощущение, что при таком запросе происходит полный перебор графа, а фильтр применяется только на вывод результата.
Во-первых, хотел бы спросить у имеющих опыт работы с mariadb & oqgraph, применяется ли where (weight=<x> and linkid=<y>) во время прохода по графу, или просто фильтрует все данные после полного обхода?
Во-вторых, посоветуйте, пожалуйста, какие могут быть алтернативы данному решению? Нужна граф-ориентированная СУБД с алгоритмом поиска всех путей между точками.