NodeJS 如何在NeptuneDB中进行分页以实现高性能

dwbf0jvd  于 2023-03-08  发布在  Node.js
关注(0)|答案(2)|浏览(107)

你好,我现在正在建立一个网站,使用AWS NeptuneDB(Gremlin),NodeJs作为后端和前端的Angular 。现在我面临着一个问题,我想做我的网站分页,因为没有分页,我可能会加载和显示5000项查询。我知道在MySQL中,我们可以使用像

select * from mydb limit 0, 20;

进行分页。
我能在NeptuneDB(或GraphDB)中实现类似的功能吗?我调查了一段时间,发现了这一点:How to perform pagination in Gremlin
参考这个问题的答案,似乎我们无法避免将所有的查询结果加载到内存中。这是否意味着有没有分页没有任何区别?
或者我可以实现Node和Angular之间的分页(我只是猜测)?
那么有什么办法可以提高性能吗?

8dtrkrch

8dtrkrch1#

看来我可以用

g.V('vertice').out('some_relationship').order().by().range(0,3)

订单可以通过order()来保证但问题是:在分页中,我们需要获取三个参数:currentPage、PageSize、TotalNumOfItems '、currentPage和PageSize是从前端传递过来的,但是在检索项目之前我们如何获得总数呢?
我的方法是在取回物品之前先数数:

g.V('vertice').out('some_relationship').count()
g.V('vertice').out('some_relationship').order().by().range(0,3)

这样行吗?

wfypjpf4

wfypjpf42#

这个问题已经有一段时间没有被问到了。
从那时起,Amazon Neptune增加了一个结果缓存功能,使得Gremlin查询的分页变得更加容易。缓存有各种功能,包括生存时间(TTL)选项和对结果集分页的方法。这对昂贵的单个查询和有大量结果的查询都有帮助。
你可以...

相关问题