nebula数据量点一亿,match查询导致服务器连不上了

数据量点有一亿数据,使用match (v:ceshi ) return v limit 10;语法查询,导致服务器连不上了,查询结果也没有

nebula版本号是2.6.1,查询后等待了十几分钟了,可以连接服务器了,studio的nebula-http-gateway挂了,还有nebula的9669graph挂了

抱歉 match 里的limit下推还没做好,所以这个查询涉及了tag数据全捞取,2.6应该有 lookup 语法里的 indexscan limit 下推了,可以麻烦先用 LOOKUP 么?

LOOKUP ON ceshi YIELD properties(vertex),id(vertex) | LIMIT 10

新版本解决这个问题了么?

MASTER 里最近 merged 了,但是还不在 3.0 里边,下一个 release 会包涵(快了)。
这个PR: https://github.com/vesoft-inc/nebula/pull/3839
总体下推进展: https://github.com/vesoft-inc/nebula/issues/2533

还有个问题问下,我要单独count某个tag,一亿的数据count不出来,一直转圈

可能要分页统计么,要先count总数,在limit数据

统计的话请使用这个,SHOW STATS,提交一个异步 JOB SUBMIT JOB STATS之后等结束了可以看到

ref: SHOW STATS - Nebula Graph Database 手册

这个要等待很长时间,我要单独统计单个tag的话待条件,是不是不能这样

以后会有下推,单独count会好,看下推总体那个表

现在你这么做看看效果如何?

# 3.0 以后
(root@nebula) [basketballplayer]> LOOKUP ON player YIELD id(vertex) | YIELD COUNT(*) AS Player_Count
+--------------+
| Player_Count |
+--------------+
| 51           |
+--------------+


# 3.0 以前不强制前边 YIELD
LOOKUP ON player | YIELD COUNT(*) AS Player_COUNT

如果新增不是很动态,或者只是关心数量级,可以还是考虑定期 submit stats job,用 show stats 看?

1 个赞

这个LOOKUP ON player | YIELD COUNT(*) AS Player_COUNT。会查询很久,超过1分钟了

:thinking: 可以问下你的机器配置吗,CPU、内存和 磁盘类型、大小

两台centos7,cpu8核,运行内存24G,磁盘sas硬盘2.2t


Nebula 针对 SSD 设备优化过,我们也是建议用 SSD。:thinking: 你可以用 PROFLIE + 执行语句,看下执行计划,看看哪里是不是可以优化下。

就是基本语法,怎么优化?

LOOKUP ON friend WHERE friend.friend == 90 YIELD friend.friend;这个语法,导致服务器cpu和运行内存满了


问下,删除tag报错conflict,索引都删除了 ,怎么删除还报错呢

这是你删除的 tag 创建了索引,:thinking: 你看看索引是不是没删成功。

怎么看索引是否删除成功,我看了,没有这tag的索引了

SHOW TAG INDEXES;

看下