范围查询问题

现在我想查出最新插入的前100个点,测试space中有4千万个点。

看完 nGQL 简明教程 vol.02 执行计划详解与调优
后我将gql 改了改

改前: match (v:event)where v.event.triggerTime > datetime(“2023-01-01 00:00:00”) return id(v) ,v.event.triggerTime as time order by time

改后: lookup on event where event.triggerTime > datetime(“2023-01-01 00:00:00”) yield id(vertex) ,event.triggerTime as time | order by $-.time

在数据量小的space中改后的gql确实减少了查询时间,但在测试space中,两种查询时间都很长很长,有时还会OOM。nebula是不善于这种范围查询吗?还是我写的gql有问题

按照你的语义需求,你其实不是想对所有数据排序,你是想要 Top N。NebulaGraph 支持 Top N,语句上使用 order by <column_name> limit 100 就可以构造出一个 Top 100。Top N 比你现在写的 order by 能省去很多数据量和网络传输,会有提高。

是这样的我的需求就是想查询到最新的100个点,但是会查很久很久。后面我改了gql,因为是以时间排序,所以我就想这样写是不是会好一点。但是还是会很久。