过滤onNeo4j关系的性能分支

时间:2014-01-22 22:16:52

标签: neo4j

我正在考虑通过关系参数进行过滤。 例如:

如果我有一个包含

的图表
Create (n:Car)-[r:DRIVES_ON {side: 'left'}]->(m:Country {Name: 'England'}) return n,m;

我想使用

进行提取
Match (n:Car)-[r:DRIVES_ON]-(m:Country) where r.side ='left' return r;

由于性能原因,这是一个不好的主意吗?

2 个答案:

答案 0 :(得分:4)

由于只有两个选项,我只有两个不同的关系:

(Car)-[:DRIVES_ON_LEFT]->(Country)
(Car)-[:DRIVES_ON_RIGHT]->(Country)

但是了解更多有关您域名的信息会很高兴。

答案 1 :(得分:4)

妮可是对的,

属性数据当前与磁盘上的关系分开存储,而类型存储在关系记录中。因此,只检查类型的速度要快得多,因为不需要加载任何属性(延迟加载)。

因此,在高性能遍历的情况下加载属性可能会受到伤害(在冷缓存上)并使用更多内存来填充缓存。 ESP。因为所有属性一次加载,至少是适合属性记录的属性。默认情况下,不会加载较大的数组和较大的字符串,而是在访问时延迟。