

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在可变长度路径（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) 的传入边缘数为 2，(a) 的传出边缘数为 3，(b) 的传入边缘数为 4，(b) 的传出边缘数为 5。
+  `(a)-[*1..]->(b)`：评估从 (a) 开始，因为 (a) 的传出边缘数小于 (b) 的传入边缘数。
+  `(a)<-[*1..]-(b)`：评估从 (a) 开始，因为 (a) 的传入边缘数小于 (b) 的传出边缘数。

 通常，将限制性更强的模式放在 VLP 表达式的左侧。