我正在使用 Rails 3 开发一个需要对大量数据进行分页的项目。对大量数据(例如论坛帖子)进行分页以最大化性能的正确方法是什么?如果我只从一个集合中获取 10 个模型并在转到下一页时再次获取,那么服务器的工作量是否会太大?还是只加载所有内容并使用 javascript 对它们进行分页会更好?
问问题
1176 次
1 回答
5
假设您正在寻找 SQL 解决方案:
拉出 10 个对象对于服务器负载来说不是问题。问题是您使用什么查询来过滤它们。如果您使用简单的主键来过滤它们或其他一些有效的标识符,它应该是完全可以的。如果您只是想逐页列出页面(每页有 10 个项目),我看不出有问题。只需确保您获取所需的列(即避免选择不必要的列)。
您可以使用will_paginate
或kaminari
进行分页。无论您的集合大小如何,它们都只会获取您需要的记录(您希望在每页上提取的对象数量)。
基于 Scope & Engine 的、干净、强大、可定制和复杂的 Rails 3 分页器
Rails 3、Sinatra、Merb、DataMapper 等的分页库
于 2012-11-02T07:11:39.670 回答