#neo4j #cypher #graph-databases
#neo4j #cypher #графические базы данных
Вопрос:
В моем случае всего 1 узел категории и 2 узла шаблона. Я вставил * в [*] для поддержки дополнительных сценариев. Но почему в этом шифре так много попаданий в БД для текущих данных?
Ответ №1:
Вероятно *
, это часть вашего запроса «в отношениях», которая это делает.
Хотя у вас есть только один узел категории и два узла шаблона, вы попросили Neo4j перейти через любое количество связей, чтобы перейти от одного к другому, и не дали ему никакой помощи для сужения поиска, кроме указания начального узла.
Например, если ваша категория была подключена к 100 000 другим узлам (любой метки, а не только шаблона), вы заставили Neo4j перебирать каждый из них в поисках пути к узлу шаблона — и если у этих узлов есть свои собственные соединения, тогда все они должны бытьтоже изучено, потому что глубина обхода не ограничена.
Если вы знаете, как узлы категорий и шаблонов могут быть соединены интересующими вас способами (например, если есть только каждый определенный набор отношений, которые вы хотите просмотреть), то вы радикально улучшите производительность запроса. В равной степени поможет уменьшение максимальной длины пути.