Я использую neo4j 3.5.13 Community Edition. Мое приложение периодически делает набор запросов-шифров:
MERGE (unit:unitOfMeasureRegion{ name:"unit_1" })
MERGE (object:object { name: "obj_1" })
MERGE (object)-[:HAS_MEASUREMENT_UNITS]->(unit)
MERGE (object)-[:HAS_ROLE]->(role:someRole)
MERGE (object)<-[:PROVIDED_BY]-(value:SecAttributeValue)-[:IS_PART_OF]->(unit)
SET value.begin_of_time_region=datetime({somedate})
SET value.end_of_time_region=datetime({somedate})
RETURN value.begin_of_time_region, value.end_of_time_region, unit.name, object.name, id(value)
... и:
MATCH (unit)<-[:HAS_MEASUREMENT_UNITS]-(object:object { name: "object_1" })
WITH object, unit MATCH (object)<-[:PROVIDED_BY]-(value:SecondsAttributeValue)-[:IS_PART_OF]->(unit)
WITH object, value, unit
MATCH (object)-[:HAS_ROLE]->(role:someRole)
RETURN value.begin_of_time_region, value.end_of_time_region, unit.name, id(value)
Также я создал индексы:
Indexes
ON :object(Name) ONLINE
ON :unitOfMeasureRegion(Name) ONLINE
Я очищаю базу данных MATCH (n) DETACH DELETE n
(было около 70 000 узлов), и с этого момента некоторая часть запросов запускается очень медленно, т.е. для некоторой метки value:SecondsAttributeValue
они в порядке, но если я изменю ее на другую метку, например value:MinuteAttributeValue
затем запрашивает замедление.
Я также установил настройки памяти в neo4j.conf
в соответствии с neo4j memrec
.
В качестве обходного пути я воссоздал базу данных neo4j, поэтому проблема исчезла (все запросы выполняются довольно быстро ).
Что может быть причиной этого?