提问参考模版:
- nebula 版本:v2 rc1
- 部署方式(分布式 / 单机 / Docker / DBaaS):单机
- 硬件信息
- 磁盘:SSD,500G
- CPU:12核,32G
- 问题的具体描述
图模型设计的时候怎样才能避免尽量少的使用DEDUP算子呢?
提问参考模版:
你这里的 dedup 算子是指的执行计划中的 Dedup plan node 吗?如果是的话,那具体说说为什么想要减少吗?执行计划的生成基本遵循固定的模版,但是如果计划不优,我们可以定制一些规则 rule 来优化,比如消除你认为多余的 dedup 操作。
对的,就是使用PROFILE format分析查看的dedup算子,nGQL的查询几乎全是花在了dedup上面,设计图的时候怎样才能避免尽量少的会触发调用这个dedup算子呢?
我的查询路径跨越了7个节点。
能贴一下你 profile 的语句吗?最新的 master 我们有定义一些 rule 消除了部分的 dedup。
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| id | name | dependencies | profiling data | operator info |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 36 | Project | 35 | ver: 0, rows: 262930, execTime: 334895us, totalTime: 334898us | outputVar: [{"colNames":["t1","t2","reportName","reportID","ItemID","fit","ClauseID","rName","RID","t1Name","T1ID","T2ID","t2Name"],"name":"__Project_36","type":"DATASET"}] |
| | | | | inputVar: __DataJoin_35 |
| | | | | columns: $-.t1 AS t1,$-.t2 AS t2,$-.reportName AS reportName,$-.reportID AS reportID,$-.ItemID AS ItemID,$-.fit AS fit,$-.ClauseID AS ClauseID,$-.rName AS rName,$-.RID AS RID,$-.__COL_12 AS t1Name,$-.__COL_13 AS T1ID,$-.__COL_14 AS T2ID,$-.__COL_15 AS t2Name |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 35 | DataJoin | 34 | ver: 0, rows: 262930, execTime: 88056us, totalTime: 88058us | outputVar: [{"colNames":["__COL_12","__COL_13","__COL_14","_vid","__COL_16","__COL_15","__COL_17","t1","t2","reportName","reportID","ItemID","fit","ClauseID","rName","RID","T1ID"],"name":"__DataJoin_35","type":"DATASET"}] |
| | | | | inputVar: {"rightVar":{"__Project_25":"0"},"leftVar":{"__DataJoin_34":"0"}} |
| | | | | hashKeys: ["$__DataJoin_34._vid"] |
| | | | | probeKeys: ["$-.T1ID"] |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 34 | DataJoin | 33 | ver: 0, rows: 274, execTime: 6924us, totalTime: 6926us | outputVar: [{"colNames":["__COL_12","__COL_13","__COL_14","_vid","__COL_16","__COL_15","__COL_17"],"name":"__DataJoin_34","type":"DATASET"}] |
| | | | | inputVar: {"rightVar":{"__Project_33":"0"},"leftVar":{"__Project_29":"0"}} |
| | | | | hashKeys: ["$__Project_29.__COL_16"] |
| | | | | probeKeys: ["$__Project_33.__COL_17"] |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 33 | Project | 32 | ver: 0, rows: 132, execTime: 389us, totalTime: 391us | outputVar: [{"colNames":["__COL_15","__COL_17"],"name":"__Project_33","type":"DATASET"}] |
| | | | | inputVar: __GetVertices_32 |
| | | | | columns: $$.T2.name AS __COL_15,$__GetVertices_32._vid AS __COL_17 |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 32 | GetVertices | 31 | ver: 0, rows: 132, execTime: 230us, totalTime: 4015us | outputVar: [{"colNames":[],"name":"__GetVertices_32","type":"DATASET"}] |
| | | | | inputVar: __Dedup_31 |
| | | | | space: 2160 |
| | | | | dedup: false |
| | | | | limit: 9223372036854775807 |
| | | | | filter: |
| | | | | orderBy: [] |
| | | | | src: $__Dedup_31.__COL_16 |
| | | | | props: [{}] |
| | | | | exprs: [] |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 31 | Dedup | 30 | ver: 0, rows: 132, execTime: 155us, totalTime: 156us | outputVar: [{"colNames":[],"name":"__Dedup_31","type":"DATASET"}] |
| | | | | inputVar: __Project_30 |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 30 | Project | 29 | ver: 0, rows: 274, execTime: 89us, totalTime: 90us | outputVar: [{"colNames":["__COL_16"],"name":"__Project_30","type":"DATASET"}] |
| | | | | inputVar: __Project_29 |
| | | | | columns: $-.__COL_16 AS __COL_16 |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 29 | Project | 28 | ver: 0, rows: 274, execTime: 974us, totalTime: 976us | outputVar: [{"colNames":["__COL_12","__COL_13","__COL_14","_vid","__COL_16"],"name":"__Project_29","type":"DATASET"}] |
| | | | | inputVar: __GetNeighbors_28 |
| | | | | columns: $^.T1.name AS __COL_12,follow._src AS __COL_13,follow._dst AS __COL_14,$__GetNeighbors_28._vid AS _vid,*._dst AS __COL_16 |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 28 | GetNeighbors | 27 | ver: 0, rows: 274, execTime: 122us, totalTime: 7041us | outputVar: [{"colNames":[],"name":"__GetNeighbors_28","type":"DATASET"}] |
| | | | | inputVar: __Dedup_27 |
| | | | | space: 2160 |
| | | | | dedup: false |
| | | | | limit: 9223372036854775807 |
| | | | | filter: |
| | | | | orderBy: [] |
| | | | | src: $-._vid |
| | | | | edgeTypes: [] |
| | | | | edgeDirection: OUT_EDGE |
| | | | | vertexProps: [{}] |
| | | | | edgeProps: [{"props":["_dst","_src"],"type":"2175"}] |
| | | | | statProps: |
| | | | | exprs: |
| | | | | random: false |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 27 | Dedup | 26 | ver: 0, rows: 167, execTime: 11624933us, totalTime: 11624935us | outputVar: [{"colNames":["_vid"],"name":"__Dedup_27","type":"DATASET"}] |
| | | | | inputVar: __Project_26 |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 26 | Project | 25 | ver: 0, rows: 210089, execTime: 36085us, totalTime: 36087us | outputVar: [{"colNames":["_vid"],"name":"__Project_26","type":"DATASET"}] |
| | | | | inputVar: __Project_25 |
| | | | | columns: $-.T1ID AS _vid |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 25 | Project | 24 | ver: 0, rows: 210089, execTime: 236007us, totalTime: 236010us | outputVar: [{"colNames":["t1","t2","reportName","reportID","ItemID","fit","ClauseID","rName","RID","T1ID"],"name":"__Project_25","type":"DATASET"}] |
| | | | | inputVar: __DataJoin_24 |
| | | | | columns: $-.t1 AS t1,$-.t2 AS t2,$-.reportName AS reportName,$-.reportID AS reportID,$-.ItemID AS ItemID,$-.fit AS fit,$-.ClauseID AS ClauseID,$-.__COL_9 AS rName,$-.__COL_10 AS RID,$-.__COL_11 AS T1ID |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 24 | DataJoin | 23 | ver: 0, rows: 210089, execTime: 64902us, totalTime: 64904us | outputVar: [{"colNames":["__COL_9","__COL_10","__COL_11","_vid","t1","t2","reportName","reportID","ItemID","fit","ClauseID","RID"],"name":"__DataJoin_24","type":"DATASET"}] |
| | | | | inputVar: {"rightVar":{"__Project_19":"0"},"leftVar":{"__Project_23":"0"}} |
| | | | | hashKeys: ["$__Project_23._vid"] |
| | | | | probeKeys: ["$-.RID"] |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 23 | Project | 22 | ver: 0, rows: 623, execTime: 488us, totalTime: 489us | outputVar: [{"colNames":["__COL_9","__COL_10","__COL_11","_vid"],"name":"__Project_23","type":"DATASET"}] |
| | | | | inputVar: __GetNeighbors_22 |
| | | | | columns: $^.R.name AS __COL_9,follow._src AS __COL_10,follow._dst AS __COL_11,$__GetNeighbors_22._vid AS _vid |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 22 | GetNeighbors | 21 | ver: 0, rows: 623, execTime: 182us, totalTime: 19542us | outputVar: [{"colNames":[],"name":"__GetNeighbors_22","type":"DATASET"}] |
| | | | | inputVar: __Dedup_21 |
| | | | | space: 2160 |
| | | | | dedup: false |
| | | | | limit: 9223372036854775807 |
| | | | | filter: |
| | | | | orderBy: [] |
| | | | | src: $-._vid |
| | | | | edgeTypes: [] |
| | | | | edgeDirection: OUT_EDGE |
| | | | | vertexProps: [{}] |
| | | | | edgeProps: [{"props":["_dst","_src"],"type":"2175"}] |
| | | | | statProps: |
| | | | | exprs: |
| | | | | random: false |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 21 | Dedup | 20 | ver: 0, rows: 505, execTime: 5922255us, totalTime: 5922257us | outputVar: [{"colNames":["_vid"],"name":"__Dedup_21","type":"DATASET"}] |
| | | | | inputVar: __Project_20 |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 20 | Project | 19 | ver: 0, rows: 155787, execTime: 23868us, totalTime: 23871us | outputVar: [{"colNames":["_vid"],"name":"__Project_20","type":"DATASET"}] |
| | | | | inputVar: __Project_19 |
| | | | | columns: $-.RID AS _vid |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 19 | Project | 18 | ver: 0, rows: 155787, execTime: 146880us, totalTime: 146882us | outputVar: [{"colNames":["t1","t2","reportName","reportID","ItemID","fit","ClauseID","RID"],"name":"__Project_19","type":"DATASET"}] |
| | | | | inputVar: __DataJoin_18 |
| | | | | columns: $-.t1 AS t1,$-.t2 AS t2,$-.reportName AS reportName,$-.reportID AS reportID,$-.ItemID AS ItemID,$-.fit AS fit,$-.__COL_7 AS ClauseID,$-.__COL_8 AS RID |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 18 | DataJoin | 17 | ver: 0, rows: 155787, execTime: 68746us, totalTime: 68749us | outputVar: [{"colNames":["__COL_7","__COL_8","_vid","t1","t2","reportName","reportID","fit","ItemID","ClauseID"],"name":"__DataJoin_18","type":"DATASET"}] |
| | | | | inputVar: {"rightVar":{"__Project_13":"0"},"leftVar":{"__Project_17":"0"}} |
| | | | | hashKeys: ["$__Project_17._vid"] |
| | | | | probeKeys: ["$-.ClauseID"] |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 17 | Project | 16 | ver: 0, rows: 12866, execTime: 11528us, totalTime: 11530us | outputVar: [{"colNames":["__COL_7","__COL_8","_vid"],"name":"__Project_17","type":"DATASET"}] |
| | | | | inputVar: __GetNeighbors_16 |
| | | | | columns: follow._src AS __COL_7,follow._dst AS __COL_8,$__GetNeighbors_16._vid AS _vid |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 16 | GetNeighbors | 15 | ver: 0, rows: 12866, execTime: 2461us, totalTime: 140504us | outputVar: [{"colNames":[],"name":"__GetNeighbors_16","type":"DATASET"}] |
| | | | | inputVar: __Dedup_15 |
| | | | | space: 2160 |
| | | | | dedup: false |
| | | | | limit: 9223372036854775807 |
| | | | | filter: |
| | | | | orderBy: [] |
| | | | | src: $-._vid |
| | | | | edgeTypes: [] |
| | | | | edgeDirection: OUT_EDGE |
| | | | | vertexProps: |
| | | | | edgeProps: [{"props":["_dst","_src"],"type":"2175"}] |
| | | | | statProps: |
| | | | | exprs: |
| | | | | random: false |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 15 | Dedup | 14 | ver: 0, rows: 13043, execTime: 5097522us, totalTime: 5097525us | outputVar: [{"colNames":["_vid"],"name":"__Dedup_15","type":"DATASET"}] |
| | | | | inputVar: __Project_14 |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 14 | Project | 13 | ver: 0, rows: 158049, execTime: 23772us, totalTime: 23774us | outputVar: [{"colNames":["_vid"],"name":"__Project_14","type":"DATASET"}] |
| | | | | inputVar: __Project_13 |
| | | | | columns: $-.ClauseID AS _vid |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 13 | Project | 12 | ver: 0, rows: 158049, execTime: 111965us, totalTime: 111967us | outputVar: [{"colNames":["t1","t2","reportName","reportID","fit","ItemID","ClauseID"],"name":"__Project_13","type":"DATASET"}] |
| | | | | inputVar: __DataJoin_12 |
| | | | | columns: $-.t1 AS t1,$-.t2 AS t2,$-.reportName AS reportName,$-.reportID AS reportID,$-.__COL_4 AS fit,$-.__COL_5 AS ItemID,$-.__COL_6 AS ClauseID |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 12 | DataJoin | 11 | ver: 0, rows: 158049, execTime: 32146us, totalTime: 32149us | outputVar: [{"colNames":["__COL_4","__COL_5","__COL_6","_vid","t1","t2","reportName","reportID","ItemID"],"name":"__DataJoin_12","type":"DATASET"}] |
| | | | | inputVar: {"rightVar":{"__Project_7":"0"},"leftVar":{"__Project_11":"0"}} |
| | | | | hashKeys: ["$__Project_11._vid"] |
| | | | | probeKeys: ["$-.ItemID"] |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 11 | Project | 10 | ver: 0, rows: 87218, execTime: 55349us, totalTime: 55353us | outputVar: [{"colNames":["__COL_4","__COL_5","__COL_6","_vid"],"name":"__Project_11","type":"DATASET"}] |
| | | | | inputVar: __GetNeighbors_10 |
| | | | | columns: like.fit AS __COL_4,like._src AS __COL_5,like._dst AS __COL_6,$__GetNeighbors_10._vid AS _vid |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 10 | GetNeighbors | 9 | ver: 0, rows: 87218, execTime: 15622us, totalTime: 137846us | outputVar: [{"colNames":[],"name":"__GetNeighbors_10","type":"DATASET"}] |
| | | | | inputVar: __Dedup_9 |
| | | | | space: 2160 |
| | | | | dedup: false |
| | | | | limit: 9223372036854775807 |
| | | | | filter: |
| | | | | orderBy: [] |
| | | | | src: $-._vid |
| | | | | edgeTypes: [] |
| | | | | edgeDirection: OUT_EDGE |
| | | | | vertexProps: |
| | | | | edgeProps: [{"props":["_dst","_src","fit"],"type":"2177"}] |
| | | | | statProps: |
| | | | | exprs: |
| | | | | random: false |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 9 | Dedup | 8 | ver: 0, rows: 71, execTime: 71us, totalTime: 72us | outputVar: [{"colNames":["_vid"],"name":"__Dedup_9","type":"DATASET"}] |
| | | | | inputVar: __Project_8 |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 8 | Project | 7 | ver: 0, rows: 161, execTime: 51us, totalTime: 51us | outputVar: [{"colNames":["_vid"],"name":"__Project_8","type":"DATASET"}] |
| | | | | inputVar: __Project_7 |
| | | | | columns: $-.ItemID AS _vid |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 7 | Project | 6 | ver: 0, rows: 161, execTime: 304us, totalTime: 304us | outputVar: [{"colNames":["t1","t2","reportName","reportID","ItemID"],"name":"__Project_7","type":"DATASET"}] |
| | | | | inputVar: __DataJoin_6 |
| | | | | columns: $-.t1 AS t1,$-.__COL_0 AS t2,$-.__COL_1 AS reportName,$-.__COL_2 AS reportID,$-.__COL_3 AS ItemID |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 6 | DataJoin | 5 | ver: 0, rows: 161, execTime: 177us, totalTime: 179us | outputVar: [{"colNames":["__COL_0","__COL_1","__COL_2","__COL_3","_vid","t1","reportID"],"name":"__DataJoin_6","type":"DATASET"}] |
| | | | | inputVar: {"rightVar":{"__Project_1":"0"},"leftVar":{"__Project_5":"0"}} |
| | | | | hashKeys: ["$__Project_5._vid"] |
| | | | | probeKeys: ["$-.reportID"] |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 5 | Project | 4 | ver: 0, rows: 161, execTime: 444us, totalTime: 446us | outputVar: [{"colNames":["__COL_0","__COL_1","__COL_2","__COL_3","_vid"],"name":"__Project_5","type":"DATASET"}] |
| | | | | inputVar: __GetNeighbors_4 |
| | | | | columns: exist.timer AS __COL_0,$^.Report.name AS __COL_1,exist._src AS __COL_2,exist._dst AS __COL_3,$__GetNeighbors_4._vid AS _vid |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 4 | GetNeighbors | 3 | ver: 0, rows: 161, execTime: 90us, totalTime: 2936us | outputVar: [{"colNames":[],"name":"__GetNeighbors_4","type":"DATASET"}] |
| | | | | inputVar: __Dedup_3 |
| | | | | space: 2160 |
| | | | | dedup: false |
| | | | | limit: 9223372036854775807 |
| | | | | filter: |
| | | | | orderBy: [] |
| | | | | src: $-._vid |
| | | | | edgeTypes: [] |
| | | | | edgeDirection: OUT_EDGE |
| | | | | vertexProps: [{}] |
| | | | | edgeProps: [{"props":["_dst","_src","timer"],"type":"2172"}] |
| | | | | statProps: |
| | | | | exprs: |
| | | | | random: false |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 3 | Dedup | 2 | ver: 0, rows: 23, execTime: 17us, totalTime: 17us | outputVar: [{"colNames":["_vid"],"name":"__Dedup_3","type":"DATASET"}] |
| | | | | inputVar: __Project_2 |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2 | Project | 1 | ver: 0, rows: 23, execTime: 12us, totalTime: 12us | outputVar: [{"colNames":["_vid"],"name":"__Project_2","type":"DATASET"}] |
| | | | | inputVar: __Project_1 |
| | | | | columns: $-.reportID AS _vid |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 1 | Project | 0 | ver: 0, rows: 23, execTime: 53us, totalTime: 55us | outputVar: [{"colNames":["t1","reportID"],"name":"__Project_1","type":"DATASET"}] |
| | | | | inputVar: __GetNeighbors_0 |
| | | | | columns: has.timer AS t1,has._dst AS reportID |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 0 | GetNeighbors | 38 | ver: 0, rows: 23, execTime: 103us, totalTime: 1619us | outputVar: [{"colNames":[],"name":"__GetNeighbors_0","type":"DATASET"}] |
| | | | | inputVar: __VAR_0 |
| | | | | space: 2160 |
| | | | | dedup: false |
| | | | | limit: 9223372036854775807 |
| | | | | filter: |
| | | | | orderBy: [] |
| | | | | src: $__VAR_0._vid |
| | | | | edgeTypes: [] |
| | | | | edgeDirection: OUT_EDGE |
| | | | | vertexProps: |
| | | | | edgeProps: [{"props":["_dst","timer"],"type":"2171"}] |
| | | | | statProps: |
| | | | | exprs: |
| | | | | random: false |
-----+--------------+--------------+----------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 38 | Start | | ver: 0, rows: 0, execTime: 1us, totalTime: 102us | outputVar: [{"colNames":[],"name":"__Start_38","type":"DATASET"}] |
-----+--------------+--------------+----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
可以试试最新的 master 分支,对这块有优化,删除了部分不必要的 dedup 和 project。执行计划其实跟如何建模关系不是很直接,如何建模只要写相似的查询就会生成相似的计划。
nebula 执行计划的优化现在还处于刚起步的阶段,会有许多不完善的地方,不过这也是积累的过程,现在还有很多显而易见的规则没来及做,今年会在这块持续的投入,让 query 跑的更快。
nebula v1会比v2性能好吗?查询是否会更快一点哦,谢谢
GA 版本的性能目标是 v2 不比 v1 差,后续小版本开始着力性能优化,因为 v2 上面可以优化的点很多,前期主要在适配 1.0 的功能和部分支持 match 的特性上,很多优化的点还没来及做,但是可以预见的是 v2 的性能以后肯定会比 v1 好。