加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何加快对PostgreSQL表中的行计数?

发布时间:2020-12-13 16:43:24 所属栏目:百科 来源:网络整理
导读:我们需要计算PostgreSQL表中的行数。在我们的情况下,没有条件需要满足,并且如果这显着提高查询速度,得到行估计是完全可以接受的。 基本上,我们希望从 table中选择count(id)以尽可能快地运行,即使这意味着没有得到精确的结果。 谢谢!任何建议将不胜感激
我们需要计算PostgreSQL表中的行数。在我们的情况下,没有条件需要满足,并且如果这显着提高查询速度,得到行估计是完全可以接受的。

基本上,我们希望从< table>中选择count(id)以尽可能快地运行,即使这意味着没有得到精确的结果。

谢谢!任何建议将不胜感激!

快速估计:
SELECT reltuples FROM pg_class WHERE oid = 'my_schema.my_table'::regclass;

这优于目前提出的查询 – 包括Postgres Wiki on slow counting.中的建议(我现在更新了):
在pg_class中,relname不是唯一的。在数据库的多个模式中可以有多个具有相同relname的表。这是我的安装中的常见的情况。

而对pg_stat_user_tables的查询是慢500倍,因为这是一个视图在几个表。

如果不对表名进行模式限定,则转换为regclass会观察当前的search_path以选择最佳匹配。如果表在search_path中的任何模式中不存在(或不可见),您会收到一条错误消息。

Object Identifier Types in the manual的详细信息。

相关答案新选项:

> Fast way to discover the row count of a table

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读