Graph ego网重量计算的性能问题

Graph ego网重量计算的性能问题,graph,gremlin,tinkerpop3,janusgraph,Graph,Gremlin,Tinkerpop3,Janusgraph,我们有下面的图表数据。只有5个顶点,但我们有很多边。如何处理下面的查询?我想获取从一个节点到另一个节点的路径。我只想得到循环路径,并计算自我的权重之和。循环将从一个循环到另一个循环,从一个循环到自身循环。我想过滤重量计算的总和 suresh = graph.addVertex(label,'person','uuid','7bff1bc0-cef1-1033-8f28-d99da6cfd8a9') robin_niu = graph.addVertex(label,'perso

我们有下面的图表数据。只有5个顶点,但我们有很多边。如何处理下面的查询?我想获取从一个节点到另一个节点的路径。我只想得到循环路径,并计算自我的权重之和。循环将从一个循环到另一个循环,从一个循环到自身循环。我想过滤重量计算的总和

suresh       = graph.addVertex(label,'person','uuid','7bff1bc0-cef1-1033-8f28-d99da6cfd8a9')
robin_niu    = graph.addVertex(label,'person','uuid','e3348740-d37f-1031-8b5b-89fbb6fdad64')
hujunjie     = graph.addVertex(label,'person','uuid','5e5139c0-dbe7-102e-8780-bedba724cbf7')
clintpollitt = graph.addVertex(label,'person','uuid','d92c6340-f98b-1035-85d7-bee5d5cc5ebe')
yanjuqi      = graph.addVertex(label,'person','uuid','2d9fba40-74c7-1033-8e84-d3a6c90ad2e9')

suresh.addEdge('Communication',robin_niu,'date','2017-11-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',robin_niu,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',robin_niu,'date','2017-11-03T00:00:00Z','weight',1)
suresh.addEdge('Communication',robin_niu,'date','2017-11-04T00:00:00Z','weight',1)
suresh.addEdge('Communication',robin_niu,'date','2017-11-05T00:00:00Z','weight',1)
suresh.addEdge('Communication',hujunjie,'date','2017-12-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',hujunjie,'date','2017-12-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',hujunjie,'date','2017-12-03T00:00:00Z','weight',1)
suresh.addEdge('Communication',hujunjie,'date','2017-12-04T00:00:00Z','weight',1)
suresh.addEdge('Communication',hujunjie,'date','2017-12-05T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-10-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-10-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-10-03T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-10-04T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-10-05T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-01-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-01-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-01-03T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-01-04T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-01-05T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-11-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-11-03T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-11-04T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-11-05T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-12-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-12-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-12-03T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-12-04T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-12-05T00:00:00Z','weight',1)
suresh.addEdge('Communication',yanjuqi,'date','2017-12-05T00:00:00Z','weight',1)
suresh.addEdge('ProfilesReportingToChain',clintpollitt,'date','2016-12-01T00:00:00Z','weight',5)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-01T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-02T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
suresh.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)

clintpollitt.addEdge('Communication',robin_niu,'date','2017-12-01T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',robin_niu,'date','2017-12-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',robin_niu,'date','2017-12-03T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',hujunjie,'date','2017-11-01T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',hujunjie,'date','2017-12-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',hujunjie,'date','2017-10-03T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',hujunjie,'date','2017-12-04T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',hujunjie,'date','2017-12-05T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',yanjuqi,'date','2017-10-01T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',yanjuqi,'date','2017-10-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',yanjuqi,'date','2017-10-03T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',yanjuqi,'date','2017-10-04T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',yanjuqi,'date','2017-10-05T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',yanjuqi,'date','2017-01-01T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',yanjuqi,'date','2017-01-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',yanjuqi,'date','2017-01-03T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',yanjuqi,'date','2017-01-04T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',yanjuqi,'date','2017-01-05T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',yanjuqi,'date','2017-11-01T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',yanjuqi,'date','2017-11-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',yanjuqi,'date','2017-11-03T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',yanjuqi,'date','2017-11-04T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',yanjuqi,'date','2017-11-05T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-01T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-01T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-01T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-01T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-01T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-02T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-11T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-11T00:00:00Z','weight',1)
clintpollitt.addEdge('Communication',suresh,'date','2017-11-11T00:00:00Z','weight',1)

yanjuqi.addEdge('Communication',robin_niu,'date','2017-12-11T00:00:00Z','weight',1)
yanjuqi.addEdge('Communication',robin_niu,'date','2017-12-12T00:00:00Z','weight',1)
yanjuqi.addEdge('Communication',robin_niu,'date','2017-12-13T00:00:00Z','weight',1)
yanjuqi.addEdge('Communication',hujunjie,'date','2017-11-11T00:00:00Z','weight',1)
yanjuqi.addEdge('Communication',hujunjie,'date','2017-12-12T00:00:00Z','weight',1)
yanjuqi.addEdge('Communication',hujunjie,'date','2017-10-13T00:00:00Z','weight',1)
yanjuqi.addEdge('Communication',hujunjie,'date','2017-12-14T00:00:00Z','weight',1)
yanjuqi.addEdge('Communication',hujunjie,'date','2017-12-15T00:00:00Z','weight',1)
yanjuqi.addEdge('Communication',clintpollitt,'date','2017-10-01T00:00:00Z','weight',1)
yanjuqi.addEdge('Communication',clintpollitt,'date','2017-10-02T00:00:00Z','weight',1)
yanjuqi.addEdge('Communication',clintpollitt,'date','2017-10-03T00:00:00Z','weight',1)
yanjuqi.addEdge('Communication',clintpollitt,'date','2017-10-04T00:00:00Z','weight',1)
yanjuqi.addEdge('Communication',suresh,'date','2017-10-05T00:00:00Z','weight',1)
yanjuqi.addEdge('Communication',suresh,'date','2017-01-01T00:00:00Z','weight',1)

robin_niu.addEdge('Communication',hujunjie,'date','2017-12-11T00:00:00Z','weight',1)
robin_niu.addEdge('Communication',hujunjie,'date','2017-12-12T00:00:00Z','weight',1)
robin_niu.addEdge('Communication',hujunjie,'date','2017-12-13T00:00:00Z','weight',1)
robin_niu.addEdge('Communication',hujunjie,'date','2017-11-11T00:00:00Z','weight',1)
robin_niu.addEdge('Communication',hujunjie,'date','2017-12-12T00:00:00Z','weight',1)
robin_niu.addEdge('Communication',hujunjie,'date','2017-10-13T00:00:00Z','weight',1)
robin_niu.addEdge('Communication',yanjuqi,'date','2017-12-14T00:00:00Z','weight',1)
robin_niu.addEdge('Communication',yanjuqi,'date','2017-12-15T00:00:00Z','weight',1)
robin_niu.addEdge('Communication',clintpollitt,'date','2017-10-01T00:00:00Z','weight',1)
robin_niu.addEdge('Communication',suresh,'date','2017-11-01T00:00:00Z','weight',1)
robin_niu.addEdge('Communication',suresh,'date','2017-01-01T00:00:00Z','weight',1)
robin_niu.addEdge('ProfilesReportingToChain',yanjuqi,'date','2017-10-02T00:00:00Z','weight',5)
robin_niu.addEdge('ProfilesColleague',hujunjie,'date','2017-10-03T00:00:00Z','weight',2)

hujunjie.addEdge('Communication',robin_niu,'date','2017-12-11T00:00:00Z','weight',1)
hujunjie.addEdge('Communication',robin_niu,'date','2017-12-12T00:00:00Z','weight',1)
hujunjie.addEdge('Communication',clintpollitt,'date','2017-12-13T00:00:00Z','weight',1)
hujunjie.addEdge('Communication',clintpollitt,'date','2017-11-11T00:00:00Z','weight',1)
hujunjie.addEdge('Communication',clintpollitt,'date','2017-12-12T00:00:00Z','weight',1)
hujunjie.addEdge('Communication',suresh,'date','2017-10-13T00:00:00Z','weight',1)
hujunjie.addEdge('Communication',suresh,'date','2017-11-01T00:00:00Z','weight',1)
hujunjie.addEdge('Communication',suresh,'date','2017-01-01T00:00:00Z','weight',1)
hujunjie.addEdge('Communication',yanjuqi,'date','2017-12-14T00:00:00Z','weight',1)
hujunjie.addEdge('Communication',yanjuqi,'date','2017-12-15T00:00:00Z','weight',1)
hujunjie.addEdge('Communication',yanjuqi,'date','2017-10-01T00:00:00Z','weight',1)
hujunjie.addEdge('ProfilesReportingToChain',yanjuqi,'date','2016-10-02T00:00:00Z','weight',5)
hujunjie.addEdge('ProfilesColleague',robin_niu,'date','2017-10-03T00:00:00Z','weight',2)
下面的查询不能很好地工作。如何解决此问题

g.V().has('uuid','e3348740-d37f-1031-8b5b-89fbb6fdad64').as('v').
  repeat(outE().as('e').inV().as('v')).
    until(has('uuid','2d9fba40-74c7-1033-8e84-d3a6c90ad2e9')).
  store('a').
    by('uuid').
  store('a').
    by(select(all, 'v').unfold().values('uuid').fold()).
  store('a').
    by(select(all, 'e').unfold().
       store('x').
         by(union(values('weight'),
                  select('x').count(local)).fold()).
       cap('x').
       store('a').
         by(unfold().limit(local, 1).fold()).unfold().
       sack(assign).
         by(constant(1d)).
       sack(div).
         by(union(constant(1d),
                  tail(local, 1)).sum()).
       sack(mult).
         by(limit(local, 1)).
       sack().sum()).
  cap('a')

此查询将永远运行,因为您的图形包含循环路径,而您的查询不考虑这些路径。我假设您只关心最短路径(否则填写
a
集合就没有多大意义了)。一个简单的更改将修复您的查询:

gremlin> g.V().has('uuid','e3348740-d37f-1031-8b5b-89fbb6fdad64').as('v').
......1>   repeat(outE().as('e').inV().as('v')).
......2>     until(has('uuid','2d9fba40-74c7-1033-8e84-d3a6c90ad2e9').
......3>             or().cyclicPath()).
......4>   has('uuid','2d9fba40-74c7-1033-8e84-d3a6c90ad2e9').limit(1).
......5>   store('a').
......6>     by('uuid').
......7>   store('a').
......8>     by(select(all, 'v').unfold().values('uuid').fold()).
......9>   store('a').
.....10>     by(select(all, 'e').unfold().
.....11>        store('x').
.....12>          by(union(values('weight'),
.....13>                   select('x').count(local)).fold()).
.....14>        cap('x').
.....15>        store('a').
.....16>          by(unfold().limit(local, 1).fold()).unfold().
.....17>        sack(assign).
.....18>          by(constant(1d)).
.....19>        sack(div).
.....20>          by(union(constant(1d),
.....21>                   tail(local, 1)).sum()).
.....22>        sack(mult).
.....23>          by(limit(local, 1)).
.....24>        sack().sum()).
.....25>   cap('a')
==>[2d9fba40-74c7-1033-8e84-d3a6c90ad2e9,[e3348740-d37f-1031-8b5b-89fbb6fdad64,2d9fba40-74c7-1033-8e84-d3a6c90ad2e9],[5],5.0]

此查询将永远运行,因为您的图形包含循环路径,而您的查询不考虑这些路径。我假设您只关心最短路径(否则填写
a
集合就没有多大意义了)。一个简单的更改将修复您的查询:

gremlin> g.V().has('uuid','e3348740-d37f-1031-8b5b-89fbb6fdad64').as('v').
......1>   repeat(outE().as('e').inV().as('v')).
......2>     until(has('uuid','2d9fba40-74c7-1033-8e84-d3a6c90ad2e9').
......3>             or().cyclicPath()).
......4>   has('uuid','2d9fba40-74c7-1033-8e84-d3a6c90ad2e9').limit(1).
......5>   store('a').
......6>     by('uuid').
......7>   store('a').
......8>     by(select(all, 'v').unfold().values('uuid').fold()).
......9>   store('a').
.....10>     by(select(all, 'e').unfold().
.....11>        store('x').
.....12>          by(union(values('weight'),
.....13>                   select('x').count(local)).fold()).
.....14>        cap('x').
.....15>        store('a').
.....16>          by(unfold().limit(local, 1).fold()).unfold().
.....17>        sack(assign).
.....18>          by(constant(1d)).
.....19>        sack(div).
.....20>          by(union(constant(1d),
.....21>                   tail(local, 1)).sum()).
.....22>        sack(mult).
.....23>          by(limit(local, 1)).
.....24>        sack().sum()).
.....25>   cap('a')
==>[2d9fba40-74c7-1033-8e84-d3a6c90ad2e9,[e3348740-d37f-1031-8b5b-89fbb6fdad64,2d9fba40-74c7-1033-8e84-d3a6c90ad2e9],[5],5.0]

我知道你在底部发布的查询很好——你说它不太好用,但不要说为什么。这与性能有关吗?对不起,你问题的标题是“性能”,所以我想这就是问题所在。在您的环境中,您发现这个遍历的速度有多慢?实际上,当我们执行这个脚本时,它被挂接在我们的环境中。我为uuid做了索引。还有其他意见/建议吗?此脚本无法运行。我们试图找到解决此问题的另一种方法。但现在我们没有找到解决此问题的好方法。我知道您在底部发布的查询非常好-您说它不太好,但没有说明原因。这与性能有关吗?对不起,你问题的标题是“性能”,所以我想这就是问题所在。在您的环境中,您发现这个遍历的速度有多慢?实际上,当我们执行这个脚本时,它被挂接在我们的环境中。我为uuid做了索引。还有其他意见/建议吗?此脚本无法运行。我们试图找到解决此问题的另一种方法,但现在我们没有找到解决此问题的好方法。