微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我们需要计算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

原文地址:https://www.jb51.cc/postgresql/193306.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐