【发布时间】:2011-07-27 21:36:42
【问题描述】:
我想知道是否有人作为一个好主意或解决方案使用分页而不在拆分结果之前计算所有记录
我的意思是,在使用默认 CI 库进行分页时,我们必须设置记录总数,这对于大量记录来说太庞大了,你不觉得吗?
如果我有超过 500,000 条记录要分页怎么办?
所以我的想法是尝试使用范围分页,例如:
第 1 页 => 查询 LIMIT 0,10
第 2 页 => 查询 LIMIT 10,20
但我发现了很多问题:
1) 我无论如何都需要计算所有记录以检索页码 2)如何保存范围([1,10] [10,20] ...等)?
感谢任何可以帮助我的人
【问题讨论】:
-
它应该自动完成。如果你想手动设置查询的数量,那么设置你的 $config[num_of_rows] = '500,000'。我的语法可能不正确,但请在分页教程中查找。
-
我不认为分页对 500,000 条记录有什么好处。目标是使数据更易于消化,但由于记录如此之多,仍然无法找到您要查找的内容。您可能希望在返回和分页之前检索数据的子集。
-
我同意 Chris,进行搜索并将结果分页。这将使其更加用户友好
-
谢谢大家,我认为问题在于我可以看到 CI 在默认情况下没有限制查询,或者我弄错了?因为一旦我启用 output_profiler() 我可以看到查询并且内部没有限制......所以 CI 猜测仍在检索和计算所有结果然后通过 php 拆分它们? :/希望我弄错了
-
我也想知道如何将总记录数保存到单个数据库记录中?所以任何时候我都不需要计算 500K 记录来检索仅在单个数据库记录中的总数.. 可能不利于数据库优化? :P
标签: php codeigniter optimization pagination