我正在研究Rails 3中的一个项目,该项目需要对大量数据进行分页。分页大量数据(例如论坛帖子)以最大限度地提高性能的正确方法是什么?如果我只从一个集合中获取10个模型并在进入下一页时再次获取,那么服务器的工作量是否会过多?或者只是加载所有内容并使用javascript对它们进行分页会更好吗?
答案 0 :(得分:5)
假设您正在寻找SQL解决方案:
拉出10个对象对于服务器负载来说不是问题。问题是您使用什么查询来过滤它们。如果您使用简单的主键来过滤它们或其他一些有效的标识符,它应该是完全正常的。如果你只是想一个接一个地列出页面(每页10个项目),我没有看到问题。只需确保您获取所需的列(这样可以避免选择不必要的列)。
您可以使用will_paginate
或kaminari
进行分页。无论您的收藏大小如何,它们都只会获取您需要的记录(您希望在每页上提取的对象数)。
范围&基于引擎,干净,强大,可定制和复杂的Rails 3分页器
Rails 3,Sinatra,Merb,DataMapper等的分页库