如何加快对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

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...