

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在可變長度路徑 (VLP) 表達式中，將更嚴格的節點放在左側
<a name="best-practices-content-4"></a>

 在可變長度路徑 (VLP) 查詢中，查詢引擎會透過選擇在表達式的左側或右側啟動周遊來最佳化評估。決策是根據左側和右側模式的基數。基數是符合指定模式的節點數量。
+  如果右側模式的基數為 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) 的傳入邊緣為兩個，(a) 的傳出邊緣為三個，(b) 的傳入邊緣為四個，(b) 的傳出邊緣為五個。
+  `(a)-[*1..]->(b)`：評估以 (a) 開頭，因為 (a) 的傳出邊緣小於 (b) 的傳入邊緣。
+  `(a)<-[*1..]-(b)`：評估以 (a) 開頭，因為 (a) 的傳入邊緣小於 (b) 的傳出邊緣。

 一般而言，請將更嚴格的模式放在 VLP 表達式的左側。