gpt4 book ai didi

没有 COUNT 的 Kaminari

转载 作者:行者123 更新时间:2023-12-03 16:45:23 25 4
gpt4 key购买 nike

Kaminari 可以在不使用 COUNT(*) 查询访问数据库的情况下工作吗?

我的应用程序的数据库很大,计数项目比获取项目本身花费的时间要长得多,从而导致性能问题。

也欢迎对具有大型数据集的其他分页解决方案提出建议。

最佳答案

不发出 SELECT COUNT 查询的分页
一般分页器需要知道记录总数来显示链接,但有时我们不需要记录总数,只需要“上一页”和“下一页”链接。对于此类用例,Kaminari 提供了 without_count创建可分页集合而不计算所有记录数的模式。当您处理非常大的数据集时,这可能会有所帮助,因为在 RDBMS 上对大表进行计数往往会变慢。
只需添加 .without_count到您的分页对象:

User.page(3).without_count
在你的 View 文件中,你只能使用像下面这样的简单助手而不是全功能的 paginate helper :
<%= link_to_prev_page @users, 'Previous Page' %>
<%= link_to_next_page @users, 'Next Page' %>
来源: github.com/kaminari

关于没有 COUNT 的 Kaminari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13284860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com