Плохая производительность Spring Data neo4j при получении данных из базы данных Neo4j

Я пытаюсь сделать простой запрос, чтобы получить 1-е отношение глубины для определенного узла. Я провел пару тестов, чтобы проверить время, необходимое для весны, чтобы получить данные. Затраченное время составляет около 1,2 секунды, хотя количество возвращенных объектов равно 1 или 1000.

Просто чтобы проверить это поведение, я написал простой скрипт на Python и выполнил тот же запрос только для того, чтобы увидеть, что для получения результата требуется всего 40 мс.

Не могли бы вы помочь мне решить эту проблему весной? Спасибо за ваше время.

Сущность -

@NodeEntity(label = "Person")
public class Person {

    @Id
    @GeneratedValue
    private Long id;

    private String name;

    @Relationship(type = "X",direction = Relationship.OUTGOING)
    private Set<Person> x;

    public Person()
    {}

    public Person(String name) {
        this.name = name;   
    }

    public String getName() {
        return name;
    }
}

Репозиторий -

import org.springframework.data.neo4j.annotation.Query;
public interface PersonRepository extends CrudRepository<Person, Long> {

    @Query("match (n:Person)-[]->(k:Person) where n.name = {name} return k.name limit 1;")
    List<String> findPeople(String name);
}

Всего findPeople занимает 1 секунду, чтобы получить один объект из базы данных.

Без вашего кода, как можно вам помочь? Пожалуйста, поделитесь своим кодом.

Yogesh Patel 13.03.2019 07:10

Я обновил код. Пожалуйста, помогите мне. Спасибо

Ranjan 13.03.2019 12:38

Вопрос в том, как вы проверяете 1,2 секунды, которые это занимает? Интеграционный тест звучит разумно при запуске и т. д.

meistermeier 05.04.2019 11:17
0
3
88
0

Другие вопросы по теме