使用带有LIMIT和SKIP的Cypher:Cypher是否始终以相同的顺序返回数据?

时间:2014-06-25 09:35:55

标签: neo4j cypher py2neo

cypher是否始终以相同的顺序返回同一查询的结果? (假设查询之间没有对DB进行任何修改?)

例如:

Query 1: return n LIMIT 100 // returns from 1 to 100?
Query 2: return n SKIP 100 LIMIT 100 // does this return from 101 onwards?

查询2是否有效地接收查询1离开的位置?我不想应用任何排序,因为我认为这会对性能起反作用。

对于某些背景 - >我使用py2neo来传递查询结果,但我发现如果我返回超过10,000,000个项目(每个项目返回4个属性),那么我得到一个错误,即py2neo已经用完了VM。所以我想要做的是运行两个单独的查询,以便我可以返回所有信息,但最好没有重复...因此上面的问题。

1 个答案:

答案 0 :(得分:2)

link表示没有关于如何在图表中保存数据的默认顺序。如果您只是执行LIMIT,它将从基础集中选择前n个对象,而使用ORDERBY LIMIT将首先对每个事物进行排序,然后给出前n个结果。有关此问题的更多信息:here

因此,为了回答您的问题,您的查询将一直有效,直到基础图数据集被修改为止。很可能数据集被修改,然后LIMIT将返回一组不同的结果。