LIMIT
をORDER BY
と使用すると、選択したラベルのすべてのノードがスキャンされます(インデックスを含む場合もあります)。すべてのノードをスキャンしないオーダーリスト
たとえば、のは、私は、次があるとしましょう:
MERGE (:Test {name:'b'})
MERGE (:Test {name:'c'})
MERGE (:Test {name:'a'})
MERGE (:Test {name:'d'})
次のことを実行しているが、我々は明らかにうまくスケールしませんこれは、スキャンしますリスト全体を見ることができPROFILE
を使用して、私たち:Test {name: 'a'}
取得します。
MATCH (n:Node)
RETURN n
ORDER BY n.name
LIMIT 1
このラベルには、いくつかの並べ替えオプションがあります。これらのリスト内のノードの順序は頻繁に変更する必要はありませんが、各リストはユーザー用にパーソナライズされているため、キャッシュできません。:Test {name:'b'}
?各ソートオプションのノードからノードへのポインタを作成するのは良い選択でしょうか?
(n {name:'a'})-[:ABC_NEXT]->(n {name:'b'})-[:ABC_NEXT]->(n {name:'c'})-...
のようなものは、私は複数のソートのポインタを持つことができるだろうか?それは過労だろうか?
参考:
- https://neo4j.com/blog/moving-relationships-neo4j/
- http://www.markhneedham.com/blog/2014/04/19/neo4j-cypher-creating-relationships-between-a-collection-of-nodes-invalid-input/