在 symfony 4 中分页的最佳方式
Posted
技术标签:
【中文标题】在 symfony 4 中分页的最佳方式【英文标题】:Optimal way to paginate in symfony 4 【发布时间】:2018-06-23 07:42:45 【问题描述】:我正在构建一个 API,我想知道在 symfony (v4) 和学说 ORM 中分页的最佳方式是什么。
我使用了一些捆绑软件,例如 knp paginator 和 Pagerfanta,但我之所以这么问,是因为当我们在数据库中有大量数据时,我会关心性能。 用Doctrine的Paginator自己实现分页不是更好吗?
谢谢。
【问题讨论】:
【参考方案1】:如果你没有提到你期望有多少数据,这很难回答。
现在,我会简单地使用whiteoctober/Pagerfanta
。
我使用Pagerfanta
对单个 Postgres 表中 ~200 000 000 条记录的结果进行分页。
没有性能问题。
官方Symfony 4 demo也有使用。
实现您自己的、更高效的分页器 - 对我来说听起来总是一个好主意(和挑战)。但是如果没有预期的数据量,您将无法检查其效率。
【讨论】:
我会选择 whiteoctober/Pagerfanta ,我只是想从人们那里获得有关性能的反馈,2 亿是可以的数据。 几年前我和朋友也有过同样的讨论......我们没有找到比现有解决方案更好的解决方案。 Pagerfanta 不在我的 Symfony 4.3 演示项目中。相反,有一个分页助手类包裹在 Doctrine Paginator 对象周围,仅用于通过启用 OutputWalker 来处理包含“have”的查询。不会撒谎,我不知道那是怎么回事。 Pagerfanta 也不在 atm 指向 Symfony 5 的链接中。也就是说,Pagerfanta 乍一看还不错。以上是关于在 symfony 4 中分页的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章