- nebula 版本:v3.6.0
- 部署方式:单机
- 安装方式:Docker
- 是否上生产环境N
- 硬件信息
- 磁盘 500G HDD
- CPU、内存信息 32C 32G
- 问题的具体描述
写入300W点,2999999条边,点id从1到300W,构造一棵完全二叉树,对比match查询效率。共用了四种查询语句,其中第四种查询直接把服务查挂了。
语句一:MATCH p = (m:Process {pguid:‘2999999’})<-[r:PROCESS_CREATE0…50]-(n:Process) return p
语句二:MATCH p = (m:Process )-[r:PROCESS_CREATE0…50]->(n:Process{pguid:‘2999999’}) return p
语句三:MATCH p = (m:Process {pguid:‘2999999’})<-[r:PROCESS_CREATE0…50]-(n:Process{pguid:‘1’}) return p
语句四:MATCH p = (m:Process {pguid:‘1’})-[r:PROCESS_CREATE0…50]->(n:Process{pguid:‘2999999’}) return p
对于后两种语句三和语句四应该是没有做进一步的优化,貌似是选择左边的过滤条件为起始点,如果有多个过滤条件,这里是否考虑根据指定节点的出入度选择出入度少的节点作为起始节点查询。