翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
パフォーマンスを最適化するときは、ノードパターン専用のリレーションシップラベルを使用すると、ノードのラベルフィルタリングを削除できます。2 つのperson
ノード間の関係を定義するためにlikes
のみ関係が使用されるグラフモデルを考えてみましょう。このパターンを見つけるために、次のクエリを記述できます。
MATCH (n:person)-[:likes]->(m:person)
RETURN n, m
n と m のperson
ラベルチェックは冗長です。これは、両方の がタイプ の場合にのみ表示されるように関係を定義しているためですperson
。パフォーマンスを最適化するために、次のようにクエリを記述できます。
MATCH (n)-[:likes]->(m)
RETURN n, m
このパターンは、プロパティが単一ノードラベルに排他的である場合にも適用できます。person
ノードのみが プロパティを持っていると仮定します。したがってemail
、ノードラベルの一致の検証person
は冗長です。このクエリを次のように記述します。
MATCH (n:person)
WHERE n.email = 'xxx@gmail.com'
RETURN n
このクエリを次のように記述するよりも効率的ではありません。
MATCH (n)
WHERE n.email = 'xxx@gmail.com'
RETURN n
このパターンを採用するのは、パフォーマンスが重要で、モデリングプロセスでこれらのエッジラベルが他のノードラベルを含むパターンに再利用されないことを確認するチェックがある場合のみです。などの別のノードラベルに email
プロパティを後で導入するとcompany
、クエリのこれらの 2 つのバージョン間で結果が異なります。