gpt4 book ai didi

postgresql - 雷 : page count performance for search query

转载 作者:行者123 更新时间:2023-11-29 12:12:05 24 4
gpt4 key购买 nike

我们使用 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/

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