Запрос на слияние Neo4j на узле с индексированным ограничением занимает 4-6 секунд - PullRequest
0 голосов
/ 06 августа 2020

Я запускаю шифровальный запрос слияния Neo4j в моем Java приложении, которое выполняет слияние на узле с меткой, а также индексируемым свойством. Независимо от совпадения или создания, я устанавливаю некоторые свойства для сопоставленного или созданного узла. Запрос в среднем занимает около 4-6se c. Фрагмент кода запроса:

@Query("MERGE (u:User {userId: {userId}}) set u.lat={lat}, u.lng={lng}, u.accuracy={accuracy}, "
      + " u.brandId={brandId}, u.updatedAt={updatedAt}, u.createdAt={createdAt} "
      + " return u")
  User saveUserCypher(@Param("userId") Long userId, @Param("lat") Double lat, @Param("lng") Double lng,
      @Param("accuracy") Integer accuracy, @Param("brandId") Integer brandId,
      @Param("updatedAt") String updatedAt, @Param("createdAt") String createdAt);
  1. Версия сервера Neo4j: 3.3.2 (Community Edition)
  2. Автономный компьютер
  3. Конфигурация серверного оборудования: 72vCPU 144GB RAM (в основном с использованием экземпляра c5d.18xlarge AWS EC2 для размещения сервера neo4j)

Я уже пробовал использовать функцию сохранения Spring Data Neo4j, и это занимает еще больше времени, поэтому я вернулся к написанию шифра. Я также увеличил размер кеш-памяти сервера до 60 г. Ожидается ли такое большое время запроса? Я надеялся, что запрос будет выполнен за секунду. Подскажите, пожалуйста, какие оптимизации / улучшения можно сделать?

Заранее спасибо. Редактировать 1 : Добавлен профиль запроса

...