그래서 15 개의 실제 비즈니스 개체를 나타내는 Neo4j의 15 가지 레이블이 있습니다. 이 모든 객체들은 서로 관련되어 있습니다. 각 객체 (레이블)에는 수천 개의 노드가 있습니다. 내가하려는 것은 이러한 모든 레이블 사이에서 선택적인 일치를 수행하고 관련 데이터를 얻는 것입니다. 쿼리가 매우 느리게 실행되어 15 개가 모두 선택되었으며 3-4 개 개체 유형에서 제대로 작동합니다.Neo4j 쿼리 최적화 - 15 diff 레이블
일반적으로이 쿼리는 제대로 작동하는 개체 유형이 적은 쿼리입니다.
MATCH (incident:Incidents)
WHERE incident.incident_number IN ["INC000005590903","INC000005590903"]
MATCH (device:Devices)
WHERE device.deviceid_udr in ["RE221869491800Uh_pVAevJpYAhRcJ"]
MATCH (alarm:Alarms)
WHERE alarm.entryid_udr in ["ALM123000000110"]
MATCH incident-[a]-alarm
MATCH device-[b]-alarm
MATCH incident-[c]-device
RETURN incident.incident_number, device.deviceid,alarm.entryid_udr
15 개의 다른 개체 유형과 관련된 데이터를 찾기 위해 쿼리를 수행하면 매우 느리게 실행됩니다. 이 문제에 접근 할 수있는 방법에 대한 제안이 있으십니까
Incidents.incident_number, Devices.deviceid_udr 및 Alarms.entryid_udr에 대한 색인이 있습니까? – JohnMark13
예, 모든 필드에 색인을 추가했습니다. – ajinkhya
당신이 지금까지 추가 한 것은 느려야합니다 (심지어 확대), 제대로 작동하지 않는 쿼리를 게시 할 수 있습니까? 천천히 얼마나 천천히? – JohnMark13