Neo4j займет меньше времени с запросом с большей сложностью (больше фильтров) - PullRequest
0 голосов
/ 08 мая 2019

Я профилировал 2 запроса в Упражнениях вводного курса в браузере Neo4j, версия 3.5.3.
Один из запросов кажется мне более сложным, но занимает гораздо меньше времени.

  • Первый фильм-фильтр запросов, который будет выпущен после 2000 года
  • Второй запрос снова фильтруется по году, а также по актеру Тому Хэнксу

Первый запрос

PROFILE MATCH (n:Movie)
 WHERE n.released > 2000
 WITH count(*) AS movies
 RETURN movies

Требуется 26 мсек, чтобы выполнить 79 ударов в дБ , как показано здесь:
enter image description here

Второй запрос

PROFILE MATCH (n:Movie)<-[:ACTED_IN]-(p:Person)
 WHERE n.released > 2000 AND p.name = 'Tom Hanks'
 WITH count(*) AS movies
 RETURN movies

Выполняет больше операций за меньшее время ( 191 дБ за 5 мс ) enter image description here

Чего мне не хватает?

Спасибо !!

1 Ответ

0 голосов
/ 09 мая 2019

Вы никогда не должны смотреть на время выполнения, чтобы сравнить 2 запроса.

Время выполнения во многом зависит от общего использования вашего ноутбука (процессор, диск, ...).

Чтобы сравнить два запроса, просто посмотрите на число дБ хитов , и вы увидите, что второй запрос имеет большее число.

A db hit - это абстрактная единица работы для базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...