提问参考模版:
- nebula 版本:2.0 GA
- 部署方式(分布式 / 单机 / Docker / DBaaS):分布式3台
- 硬件信息
- 磁盘( 推荐使用 SSD)SSD
- CPU、内存信息 32G
- 问题的具体描述
我想通过match 来代替部分find path不支持where查询的场景,没想到性能有点问题,查询的时候直接down掉一台机器
执行如下语句没有问题:
FIND SHORTEST PATH FROM 362234 to 699108 OVER word_word upto 2 steps ;
执行如下语句就直接挂掉一台机器:
MATCH p=(v) -[e1:word_word]->(v1)-[e2:word_word]->(v2) WHERE id(v)== 362234 and id(v1) == 963 and id(v2) == 699108 RETURN p;
explain结果看不懂
explain MATCH p=(v) -[e1:word_word]->(v1)-[e2:word_word]->(v2) WHERE id(v)== 362234 and id(v1) == 963 and id(v2) == 699108 RETURN p;
Execution succeeded (time spent 474/44489 us)
Execution Plan (optimize time 78 us)
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| id | name | dependencies | profiling data | operator info |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 21 | Project | 20 | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [ |
| | | | | "p" |
| | | | | ], |
| | | | | "name": "__Project_21", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: __Filter_20 |
| | | | | columns: [ |
| | | | | "$p" |
| | | | | ] |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 20 | Filter | 19 | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [ |
| | | | | "v", |
| | | | | "e1", |
| | | | | "v1", |
| | | | | "e2", |
| | | | | "v2", |
| | | | | "p" |
| | | | | ], |
| | | | | "name": "__Filter_20", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: __Filter_19 |
| | | | | condition: (((id($v)==362234) AND (id($v1)==963)) AND (id($v2)==699108)) |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 19 | Filter | 18 | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [ |
| | | | | "v", |
| | | | | "e1", |
| | | | | "v1", |
| | | | | "e2", |
| | | | | "v2", |
| | | | | "p" |
| | | | | ], |
| | | | | "name": "__Filter_19", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: __Project_18 |
| | | | | condition: (hasSameEdgeInPath($-.p)==false) |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 18 | Project | 17 | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [ |
| | | | | "v", |
| | | | | "e1", |
| | | | | "v1", |
| | | | | "e2", |
| | | | | "v2", |
| | | | | "p" |
| | | | | ], |
| | | | | "name": "__Project_18", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: __InnerJoin_17 |
| | | | | columns: [ |
| | | | | "startNode($-._path_0) AS v", |
| | | | | "relationships($-._path_0)[0] AS e1", |
| | | | | "startNode($-._path_1) AS v1", |
| | | | | "relationships($-._path_1)[0] AS e2", |
| | | | | "startNode($-._path_2) AS v2", |
| | | | | "PathBuild[PathBuild[$-._path_0,$-._path_1,$-._path_2]] AS p" |
| | | | | ] |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 17 | InnerJoin | 16 | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [ |
| | | | | "_path_0", |
| | | | | "_path_1", |
| | | | | "_path_2" |
| | | | | ], |
| | | | | "name": "__InnerJoin_17", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: { |
| | | | | "rightVar": { |
| | | | | "__Project_16": "0" |
| | | | | }, |
| | | | | "leftVar": { |
| | | | | "__InnerJoin_12": "0" |
| | | | | } |
| | | | | } |
| | | | | hashKeys: [ |
| | | | | "endNode($-._path_1)._vid" |
| | | | | ] |
| | | | | probeKeys: [ |
| | | | | "startNode($-._path)._vid" |
| | | | | ] |
| | | | | kind: InnerJoin |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 16 | Project | 23 | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [ |
| | | | | "_path" |
| | | | | ], |
| | | | | "name": "__Project_16", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: __GetVertices_15 |
| | | | | columns: [ |
| | | | | "PathBuild[VERTEX]" |
| | | | | ] |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 23 | GetVertices | 12 | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [], |
| | | | | "name": "__GetVertices_15", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: __InnerJoin_12 |
| | | | | space: 8 |
| | | | | dedup: true |
| | | | | limit: 9223372036854775807 |
| | | | | filter: |
| | | | | orderBy: [] |
| | | | | src: endNode($-._path_1)._vid |
| | | | | props: [ |
| | | | | { |
| | | | | "props": [ |
| | | | | "lower_word", |
| | | | | "word", |
| | | | | "_tag" |
| | | | | ], |
| | | | | "tagId": 9 |
| | | | | }, |
| | | | | { |
| | | | | "props": [ |
| | | | | "journal_id", |
| | | | | "year", |
| | | | | "impact_factor", |
| | | | | "impact_interval", |
| | | | | "_tag" |
| | | | | ], |
| | | | | "tagId": 10 |
| | | | | } |
| | | | | ] |
| | | | | exprs: [] |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 12 | InnerJoin | 11 | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [ |
| | | | | "_path_0", |
| | | | | "_path_1" |
| | | | | ], |
| | | | | "name": "__InnerJoin_12", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: { |
| | | | | "rightVar": { |
| | | | | "__Filter_11": "0" |
| | | | | }, |
| | | | | "leftVar": { |
| | | | | "__Filter_6": "0" |
| | | | | } |
| | | | | } |
| | | | | hashKeys: [ |
| | | | | "endNode($-._path)._vid" |
| | | | | ] |
| | | | | probeKeys: [ |
| | | | | "startNode($-._path)._vid" |
| | | | | ] |
| | | | | kind: InnerJoin |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 11 | Filter | 10 | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [ |
| | | | | "_path" |
| | | | | ], |
| | | | | "name": "__Filter_11", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: __Project_10 |
| | | | | condition: (length($-._path)>=1) |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 10 | Project | 27 | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [ |
| | | | | "_path" |
| | | | | ], |
| | | | | "name": "__Project_10", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: __GetNeighbors_9 |
| | | | | columns: [ |
| | | | | "PathBuild[VERTEX,EDGE] AS _path" |
| | | | | ] |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 27 | GetNeighbors | 6 | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [], |
| | | | | "name": "__GetNeighbors_9", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: __Filter_6 |
| | | | | space: 8 |
| | | | | dedup: true |
| | | | | limit: -1 |
| | | | | filter: |
| | | | | orderBy: [] |
| | | | | src: endNode($-._path)._vid |
| | | | | edgeTypes: [] |
| | | | | edgeDirection: OUT_EDGE |
| | | | | vertexProps: [] |
| | | | | edgeProps: [ |
| | | | | { |
| | | | | "props": [ |
| | | | | "_src", |
| | | | | "_type", |
| | | | | "_rank", |
| | | | | "_dst", |
| | | | | "size" |
| | | | | ], |
| | | | | "type": "11" |
| | | | | } |
| | | | | ] |
| | | | | statProps: |
| | | | | exprs: |
| | | | | random: false |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 6 | Filter | 5 | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [ |
| | | | | "_path" |
| | | | | ], |
| | | | | "name": "__Filter_6", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: __Project_5 |
| | | | | condition: (length($-._path)>=1) |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 5 | Project | 26 | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [ |
| | | | | "_path" |
| | | | | ], |
| | | | | "name": "__Project_5", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: __GetNeighbors_4 |
| | | | | columns: [ |
| | | | | "PathBuild[VERTEX,EDGE] AS _path" |
| | | | | ] |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 26 | GetNeighbors | 1 | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [], |
| | | | | "name": "__GetNeighbors_4", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: __VAR_1 |
| | | | | space: 8 |
| | | | | dedup: true |
| | | | | limit: -1 |
| | | | | filter: |
| | | | | orderBy: [] |
| | | | | src: $__VAR_1._vid |
| | | | | edgeTypes: [] |
| | | | | edgeDirection: OUT_EDGE |
| | | | | vertexProps: [] |
| | | | | edgeProps: [ |
| | | | | { |
| | | | | "props": [ |
| | | | | "_src", |
| | | | | "_type", |
| | | | | "_rank", |
| | | | | "_dst", |
| | | | | "size" |
| | | | | ], |
| | | | | "type": "11" |
| | | | | } |
| | | | | ] |
| | | | | statProps: |
| | | | | exprs: |
| | | | | random: false |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 1 | PassThrough | 0 | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [ |
| | | | | "_vid" |
| | | | | ], |
| | | | | "name": "__VAR_1", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
| | | | | inputVar: |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
| 0 | Start | | | outputVar: [ |
| | | | | { |
| | | | | "colNames": [], |
| | | | | "name": "__Start_0", |
| | | | | "type": "DATASET" |
| | | | | } |
| | | | | ] |
-----+--------------+--------------+----------------+---------------------------------------------------------------------------
Wed, 31 Mar 2021 07:44:08 UTC