我在Linux中使用Neo4j Community 3.0-RC1(Debian 8)。我有一个cypher查询,如下所示:
MATCH (t1:LABEL1)-[r:REL_TYPE1|REL_TYPE2]->(n)
<-[:REL_TYPE1|REL_TYPE2]-(t2:LABEL2)-[:REL_TYPE3]->(s:LABEL3)
WHERE s.code IN ['c1','c2']
当我使用PROFILE
在浏览器中运行它时,我在5571毫秒内获得了13629891个db数据集。
问题在于,当我运行相同的查询但对WHERE
子句中使用的集合使用命名参数时,即
MATCH (t1:LABEL1)-[r:REL_TYPE1|REL_TYPE2]->(n)
<-[:REL_TYPE1|REL_TYPE2]-(t2:LABEL2)-[:REL_TYPE3]->(s:LABEL3)
WHERE s.code IN {codes}
需要15到20秒(而不是5或6秒)。
我正在使用py2neo使用python,但我确认在使用时会发生同样的情况:
:POST /db/data/transaction/commit {
"statements": [
{
"statement": ...,
"parameters": {
"codes": [...]
}
}
]
}
直接来自浏览器。
这是预期的行为还是某处可能存在错误?
此致