Typo3 流体设计:Pagination Vs SQL setLimit

Typo3 fluid design: Pagination Vs SQL setLimit

我有一个 debatable 问题想提出。

我有一个包含 1000 行数据的 table。我希望能够在前端搜索引擎中搜索和查看所有这些行。

我想每页显示 50 个结果。

问题是 - 我是否应该简单地 return 通过我的存储库过滤的所有结果(可能是 1000 行数据)并让我的流畅 bootstrap 布局处理分页,或者我应该告诉我的存储库使用 setLimit 和偏移量 return 仅应在当前页面中显示的 50 行数据?

最初我认为无论哪种方式,每次页面调用都会请求 SQL 语句,因此后者会更好,因为 SQL return 的上限仅为 50 行的数据,但现在我怀疑 Typo3 使用某种存储库或数据库缓存,这意味着数据库批量数据仅被调用一次并存储在内存中,而流体分页将处理其余部分。另外,使用 setLimit 和 Offset 我将不得不构建我自己的分页系统。

你觉得哪个更有效率?我应该允许 sql 语句 return 所有数据并流畅地处理分页,还是应该先使用 setLimit 限制 sql 语句并构建我自己的分页?或者有什么方法可以混合这两者吗?

附加信息:

我的存储库 SQL 搜索非常简单。它正在使用:

$query = $this->createQuery();

...加上一个 "matching" 查询来过滤结果,最后是

return $query->execute(); 

如果你使用widget.paginate ViewHelper它会自动限制正确的查询。在您尝试访问数据之前不会执行查询,因此只要您不尝试访问分页 ViewHelper 之外的数据,就无需手动限制它。