【发布时间】:2015-07-03 23:40:58
【问题描述】:
我在查询中使用 Laravel 内置的分页方法,我需要在全文中针对大型数据集(大约 100K 行,每行包含大量文本)进行搜索。
一切正常,除了我不明白 laravel 如何计算结果的逻辑:为什么必须执行两次相同的查询(选择计数()作为聚合)来检索结果的总数,而不是使用php 函数 count(),在这种情况下效果很好。 因为使用这种方法,我可以将搜索时间缩短一半,有时可能需要长达 10 秒!
真的有必要使用 2 查询,还是有可能以某种方式覆盖这个逻辑? 或者也许是我在这个逻辑背后遗漏了什么?
【问题讨论】:
-
在分页时如何使用 PHP 计数? PHP count 将返回每页的项目数,而不是整个项目的计数。这就是为什么你必须两次,一次计算所有项目,另一次获取受您指定的数量和偏移量(页面)限制的项目
-
我做了一个
var_dump(count($results)),它返回集合的总数,而不是每页的计数,与 select count() 给出的数字相同
标签: php laravel pagination