27、图应用性能问题、陷阱与反模式

图应用性能问题、陷阱与反模式

在图应用中,性能问题是一个常见且需要重视的方面。本文将探讨图应用中性能问题的相关内容,包括慢执行遍历的诊断方法、索引的使用,以及超级节点的处理等。

1. 慢执行遍历

当用户反馈应用程序运行缓慢时,我们需要定位问题所在。例如,有用户提交了“应用程序缓慢”的工单,并告知在执行“查找 Dave 的三个拥有最多连接的朋友的朋友”请求时出现问题。我们找到了对应的遍历代码:

g.V().has('person', 'first_name', 'Dave').
  both('friends').
  both('friends').
  groupCount().
    by('first_name').
  unfold().
  order().
    by(values, desc).
    by(keys).
  project('name', 'count').
    by(keys).
    by(values).
  limit(3)

接下来,我们需要诊断这个慢执行的遍历。图数据库和关系数据库一样,都有处理慢操作的工具,主要有两种形式:解释遍历操作和分析遍历执行情况。

1.1 解释遍历

explain() 步骤可以让我们在不执行遍历的情况下了解其运行方式。这类似于关系数据库中的估计执行计划,数据库优化器会在重新排列和优化遍历后,展示输出结果,但不会实际在数据上运行遍历。例如,对上述慢遍历执行 explain() 步骤:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值