您好,我现在正在使用 aws NeptuneDB(Gremlin)、NodeJs 作为后端、Angular 作为前端构建一个网站。现在我面临一个问题,我想在我的网站上进行分页,因为如果没有分页,我可能会在一次查询中加载并显示 5000 个项目。我知道在 MySQL 中,我们可以使用 like
select * from mydb limit 0, 20;
进行分页。
我可以在 NeptuneDB(或 GraphDB)中实现类似的功能吗?我调查了一段时间,发现了这一点: How to perform pagination in Gremlin
引用这个问题的答案,看来我们无法避免将所有查询结果加载到内存中。这是否意味着有或没有分页没有任何区别。
或者我可以实现 Node 和 Angular 之间的分页吗(我只是猜测)?
那么有什么提高性能的想法吗?
最佳答案
看来我可以使用类似
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)
这行得通吗?
关于node.js - 如何在NeptuneDB中进行分页以实现高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59369658/