Neo4j 如何加速这个密码查询?
此查询需要15832毫秒,并在我的应用程序中超时。我的应用程序对每个查询所花费的时间都有时间限制。有没有办法加快这一进程?之所以速度慢,是因为“产品”节点有很多实例 确保您已经在Neo4j 如何加速这个密码查询?,neo4j,cypher,Neo4j,Cypher,此查询需要15832毫秒,并在我的应用程序中超时。我的应用程序对每个查询所花费的时间都有时间限制。有没有办法加快这一进程?之所以速度慢,是因为“产品”节点有很多实例 确保您已经在:Product(type)上创建了一个,如下所示: match (s:Product {type:'Phone'})-[r]->(o:Attributes {Resolution:'2000'}) return s, o limit 2 该索引将加速查找具有指定类型值的所有产品节点 或者,如果具有任何给定的分辨
:Product(type)
上创建了一个,如下所示:
match (s:Product {type:'Phone'})-[r]->(o:Attributes {Resolution:'2000'}) return s, o limit 2
该索引将加速查找具有指定类型
值的所有产品
节点
或者,如果具有任何给定的分辨率
值的属性
节点相对较少,则可以在:Attributes(Resolution)
上添加索引,并提供使用该索引的提示
(如果您在:Product(type)
上也有索引):
确保您已经在
:Product(type)
上创建了一个,如下所示:
match (s:Product {type:'Phone'})-[r]->(o:Attributes {Resolution:'2000'}) return s, o limit 2
该索引将加速查找具有指定类型
值的所有产品
节点
或者,如果具有任何给定的分辨率
值的属性
节点相对较少,则可以在:Attributes(Resolution)
上添加索引,并提供使用该索引的提示
(如果您在:Product(type)
上也有索引):
我已经有了这方面的索引。即便如此,如果一个“类型”有上千万个产品,在数百万个产品列表中搜索仍然需要很多时间。对吧?这个新查询只需要1毫秒。太棒了!你能解释一下为什么速度会这么快吗?难道它还需要搜索所有的产品实例吗?一旦通过索引找到少数匹配的
属性
节点,neo4j只需要遵循这些节点的关系,并测试另一端的产品
节点。我已经有了这方面的索引。即便如此,如果一个“类型”有上千万个产品,在数百万个产品列表中搜索仍然需要很多时间。对吧?这个新查询只需要1毫秒。太棒了!你能解释一下为什么速度会这么快吗?难道它还需要搜索所有的产品实例吗?一旦通过索引找到少数匹配的属性
节点,neo4j只需要跟踪这些节点的关系,并在另一端测试产品
节点。
MATCH (s:Product {type:'Phone'})-->(o:Attributes {Resolution:'2000'})
USING INDEX o:Attributes(Resolution)
RETURN s, o
LIMIT 2