翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
可変長パス (VLP) 式で、より制限の厳しいノードを左側に配置する
可変長パス (VLP) クエリでは、クエリエンジンは式の左側または右側でトラバーサルを開始するように選択して評価を最適化します。決定は、左右のパターンのカーディナリティに基づいています。Cardinality は、指定されたパターンに一致するノードの数です。
-
適切なパターンのカーディナリティが 1 の場合、右側が開始点になります。
-
左右のカーディナリティが 1 の場合、拡張は両側でチェックされ、拡張が小さい側で開始されます。拡張は、VLP 式の左側にあるノードと右側にあるノードの送信エッジまたは受信エッジの数です。最適化のこの部分は、VLP 関係が単方向で、関係タイプが指定されている場合にのみ使用されます。
-
それ以外の場合は、左側が開始点になります。
VLP 式のチェーンの場合、この最適化は最初の式にのみ適用できます。他の VLPs は左側から評価されます。例えば、 (a)、 (b) のカーディナリティを 1 にし、 (c) のカーディナリティを 1 より大きくします。
-
(a)-[*1..]->(c)
: 評価は (a) で始まります。 -
(c)-[*1..]->(a)
: 評価は (a) で始まります。 -
(a)-[*1..]-(c)
: 評価は (a) で始まります。 -
(c)-[*1..]-(a)
: 評価は (a) で始まります。
次に、(a) の着信エッジを 2 にし、(a) の送信エッジを 3 にし、(b) の着信エッジを 4 にし、(b) の送信エッジを 5 にします。
-
(a)-[*1..]->(b)
: (a) の送信エッジが (b) の受信エッジよりも小さいため、評価は (a) で始まります。 -
(a)<-[*1..]-(b)
: (a) の受信エッジは (b) の送信エッジよりも小さいため、評価は (a) で始まります。
原則として、より制限の厳しいパターンを VLP 式の左側に配置します。