2013-07-20 2 views
5

Не могли бы вы объяснить или предоставить ссылки, где мы можем узнать о команде профиля и понять планы выполнения запроса Cypher для нужд оптимизации и понять, как работает Cypher.Понимание ключевого слова и плана выполнения Neo4j 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) 

ответ

5

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

1

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

По Neo4j 2.2 есть глава в документации, которая объясняет план выполнения, см Chapter 16. Execution Plans.

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

Существует также новое профилирование ключевое слово, EXPLAIN, который позволяет просматривать план выполнения без выполнения запроса. Наконец, существует новый, основанный на затратах (в отличие от «основанного на правилах») планировщик запросов, и вы можете принудительно использовать любого из планировщиков для всех запросов или для отдельных запросов. См. Is there a way to show cypher execution plan? для получения более подробной информации о новых средствах профилирования и ссылках на соответствующую документацию.

Смежные вопросы