Для отношений: VISITED, если они только соединяют узлы: VISIT с узлами URL, вы можете использовать функцию size()
в шаблоне, исключая метку узла, которая будет получать информацию о степени из узла: URL само по себе без необходимости расширения (вы можете подтвердить это, выполнив ПРОФИЛЬ или ОБЪЯСНЕНИЕ плана и развернув все элементы, найдите GetDegreePrimitive
в операции проецирования).
Кроме того, поскольку вы используете LIMIT 10 без какого-либо упорядочения, лучше выполнять LIMIT раньше, чтобы вы выполняли только последующие операции с ограниченным набором узлов, а не выполняли всю работу для всех узлов, а только сохраняя 10.
MATCH (u:USER {email: $email})-[:CREATED]->(l:URL)
WITH l
LIMIT 10
RETURN l, size((l)<-[:VISITED]-()) as count
Кроме того, как отмечает cybersam, вам абсолютно необходим индекс: USER (электронная почта), так что ищите свой конкретный: узел USER быстрый.