如何解决许多OR子句的neo4j性能问题
我所生成的查询之一存在性能问题。查询看起来像这样:
MATCH p=(n:Person)
WHERE n.first_name = 'John' AND n.middle_name = 'A' AND n.last_name = 'Smith'
OR n.first_name = 'Joe' AND n.last_name = 'Man'
OR n.last_name = 'Storm'
OR n.first_name = 'Jonas' AND n.middle_name = 'Q' AND n.last_name = 'Son'
..
.. # 20 more OR clauses
..
..
RETURN p
此查询永远需要运行,而单个查询的运行速度非常快,例如:
MATCH p=(n:Person)
WHERE n.first_name = 'John' AND n.last_name = 'Smith'
RETURN p
..几乎立即返回。
我对所有属性都有索引; first_name
,middle_name
和last_name
。
调试起来很困难,因为查询会预热缓存。如果直接连续运行,则需要几分钟才能完成的查询可能需要几秒钟的时间。
有没有一种方法可以重写查询,使其运行更快?
(我真的不想按顺序运行单个查询,因为我想要一批结果。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。