首页 文章

简单的密码查询不合理地慢 - 我做错了什么?

提问于
浏览
2

我正在尝试将所有关系连接到给定节点,该节点也具有名为“name”的属性 . 这是我的密码:

MATCH (starting { number:'123' })<-[r]-() WHERE HAS(r.name) RETURN r

这是难以想象的慢!即使只有很少的返回值,也需要neo4j年龄来计算,并且没有那么多关系连接到节点(最多1到10个关系) .

我在这里做错了吗?其他的塞浦路斯工作正常 .

谢谢!

1 回答

  • 3

    如果您没有告诉Neo关于图形结构的足够多,那么一个节点上的关系数可能不太相关 .

    首先使用标签,然后使用索引 . 以下将在 properties number 上使用标签 YourLabel .

    CREATE INDEX ON :YourLabel(number)
    

    然后点击索引以启动查询,并在您的关系中使用类型 .

    MATCH (:YourLabel{number:'123'})<-[r:RELATIONSHIP_TYPE]-() 
    WHERE HAS (r.name)
    RETURN r
    

    现在,不是使用值123扫描数字属性的每个节点,而是仅读取单个索引 .

    要使用标签,请像这样创建节点(将添加到索引中):

    CREATE (s1:YourLabel{number:"1"})
    

相关问题