Понимание ключевого слова Neo4j Cypher Profile и плана выполнения

Может ли кто-нибудь объяснить или предоставить ссылки, по которым мы можем узнать о команде профиля и понять планы выполнения запроса Cypher для нужд оптимизации и понимания того, как работает Cypher.

Например, я создал следующий образец базы данных Neo4j (версия 2.0).

create (ayan:Person{name:"Ayan",age:25}), 
(dixi:Person{name:"Dixi",age:26}), 
(thaggu:Person{name:"Thaggu",age:27}), 
(santosh:Person{name:"Santosh",age:28}),
(ayan)-[:FRIEND]-(santosh),
(ayan)-[:FRIEND]-(dixi),
(thaggu)-[:FRIEND]-(dixi);

Теперь, когда я запускаю простой запрос ниже,

profile match n:Person, n-[:FRIEND]-m where n.name="Ayan" return m;

Я получаю следующий результат, но я не могу понять объяснение под результатом. Пожалуйста, помогите.

+--------------------------------+
| m                              |
+--------------------------------+
| Node[4]{age:28,name:"Santosh"} |
| Node[2]{age:26,name:"Dixi"}    |
+--------------------------------+
2 rows



==> ColumnFilter(symKeys=["n", "m", "  UNNAMED17"], returnItemNames=["m"], _rows=2, _db_hits=0)

==> PatternMatch(g="(m)-['  UNNAMED17']-(n)", _rows=2, _db_hits=0)

==>   Filter(pred="(Property == Literal(Ayan) AND hasLabel(n: Person))", _rows=1, _db_hits=4)

==>     NodeByLabel(label="Person", identifier="n", _rows=4, _db_hits=0)

person ayan_2587    schedule 20.07.2013    source источник


Ответы (2)


информация профиля прямо сейчас еще не закончена и, следовательно, не задокументирована. Однако критическим числом являются _db_hits, которые не должны быть слишком высокими, поскольку они дороги.

person Peter Neubauer    schedule 24.07.2013

Понимание плана выполнения

Начиная с Neo4j 2.2, в документации есть глава, объясняющая план выполнения, см. Глава 16 . Планы выполнения.

Как профилировать запрос

Также есть новое ключевое слово профилирования EXPLAIN, которое позволяет просматривать план выполнения, не выполняя запрос. Наконец, есть новый планировщик запросов, основанный на затратах (в отличие от планировщика на основе правил), и вы можете принудительно использовать любой из планировщиков для всех запросов или для отдельных запросов. См. Есть ли способ показать план выполнения шифра ? для получения дополнительных сведений о новых возможностях профилирования и ссылок на соответствующую документацию.

person jjaderberg    schedule 21.07.2015