#neo4j #graph-databases
Вопрос:
Для поиска узла, удовлетворяющего шаблону, выполняет ли neo4j DFS/BFS по всему графику, если предположить, что структура индекса недоступна?
Например, учитывая следующий запрос:
MATCH (movie:Movie)
RETURN movie.title
На мой взгляд, если мы не храним список фильмов, нам нужно просмотреть все узлы, чтобы ответить на этот запрос.
Другим примером является следующий запрос:
MATCH (:Person {name: 'Oliver Stone'})--(movie:Movie)
RETURN movie.title
Для этого потребуется найти все узлы с именем «Оливер Стоун» и проверить каждый из них, подключены ли они к узлу фильма. Первый шаг потребует прохождения всех узлов Person.
Если бы вы могли связать меня с какой-либо документацией/кодом, это было бы здорово.
Ответ №1:
Вы можете предварить свои запросы PROFILE
или EXPLAIN
понять, что происходит под капотом: https://neo4j.com/docs/cypher-manual/current/query-tuning/how-do-i-profile-a-query/#how-do-i-profile-a-query
Планы выполнения покажут, используются ли/какие индексы, например
Комментарии:
1. Спасибо. Из планов запросов я только что нашел все операции запроса: neo4j.com/docs/cypher-manual/current/execution-plans/operators . Некоторым из них нужно пройти через все узлы.