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