Ruby Rails 2.3.x 分页背后的理论是什么?



我有一个包含 3000 条用户记录的用户表。分页工作正常,但是在查看Firebug时间线时,它指出下载的内容大小为2.37MB,下载时间为9.62秒。分页工作正常,但我希望它只下载前 25 条记录并提供指向其他可用页面的链接。我尝试过太阳黑子,思考狮身人面像,铁轨find_in_batches,直线:限制=>25等。

如果分页拆分记录集并每页显示 25 条记录,那么为什么它似乎仍然下载整个表?这难道不会破坏分页背后的理论,还是我错过了什么?

@users = User.all(:conditions => ["client_id = ?", current_user.client_id]).paginate(:page => params[:page], :per_page => 25)

显然,这里的目标是在一两秒内加载我的页面,就像 10 或 12 秒一样。有没有更好的方法来解决这个问题?

你没有提到你用于分页的宝石,但如果它是任何常见的嫌疑人(或者仍然内置在 Rails 2.3 中 - 我不记得了),它实际上应该使用LIMIT只查询相关记录。您的页面加载时间缓慢很可能是由于其他原因造成的。查看开发日志以查看实际查询。

最新更新