作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们使用 Kaminari
对记录进行分页。我们破解了 total_count
方法,因为在 2m + 记录后给出总计数非常慢。
def total_count
@_hacked_total_count || (@_hacked_total_count = self.connection.execute("SELECT (reltuples)::integer FROM pg_class r WHERE relkind = 'r' AND relname ='#{table_name}'").first["reltuples"].to_i)
end
这会返回表中总记录的近似计数,这很好。
但是,当有一个搜索查询时,这个数字是完全不相关的。
我也在寻找一种快速方法来为搜索查询返回一些数字。 (不需要完全准确——但需要有意义(即在某种程度上与搜索查询有关)
如果我们上面提到的获取记录总数的方法不正确,请提出建议。
P.S - 我们使用 Postgres
作为我们的数据库提供者,使用 Rails
作为网络开发框架。
最佳答案
在偶然发现这几天后,我通过使用 EXPLAIN 查询然后提取计数行数来完成此操作。
这是我写的代码片段:
query_plan = ActiveRecord::Base.connection.execute("EXPLAIN <query>").first["QUERY PLAN"]
query_plan.match(/rows=(\d+)/)[1].to_i # returns the rows count
有了这个,我可以安全地删除 reltuples
查询。
关于postgresql - 雷 : page count performance for search query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28561667/
COUNT 查询找出 total_count 有时很慢。但是,如果我在模型中缓存 items_amount 或此类字段的值,我想将其用于 kaminari 分页。 例子:我有模型 Category (
我们使用 Kaminari 对记录进行分页。我们破解了 total_count 方法,因为在 2m + 记录后给出总计数非常慢。 def total_count @_hacked_total_co
我是一名优秀的程序员,十分优秀!