postgreSQL 另一种查看表记录总数的方法

原创 2016年09月09日 10:55:09

一般方法

select count(1) from table_name;

全量扫描一遍表,记录越多,查询速度越慢

新法

PostgreSQL 还真提供了一个这样的途径,那就是系统表 pg_class,这个系统表里头,存储着每个表的统计信息,其中 reltuples 就是对应的表的统计行,统计行的数据是pg有个独立进程,定期扫描不同的表,收集这些表的统计信息,保存在系统表里头。

方法如下:

select 
    reltuples::int as total 
from 
    pg_class 
where 
    relname = 'table_name' 
    and relnamespace = (select oid from pg_namespace where nspname = 'schema');

新法页不是通用的,如果要求特精确还是使用select count(1),如果是类似分页的,且分页数量超过比较多的,也不是要求特别精准的,这就是一个好方法!

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

PostgreSQL表的行数统计

PostgreSQL表的行数统计  在很多情况下我们需要知道一个表的记录数有多少。如果你发现你有这样的需求,你还应该问问这样的统计的精确度到底又多高。如果你在做会计报表,你需要非常的精确。如果你做一个...

Postgresql数据库count(distinct)优化

基本信息 基本情况 表共800W数据,从260W的结果集中计算出不同的案件数量(130万),需要执行20多秒 原SQL内容 select count(distinct c_bh_aj) as aj...

Select count(*) 的优化

首先说明: select count(*) 和 select count(1)的效率相差无几。这里开始引用自“德哥@Digoal”的博客,原文链接:http://blog.163.com/digoa...
  • fm0517
  • fm0517
  • 2016年08月18日 16:15
  • 2147

PostgreSQL学习篇13.1 统计信息的收集

PgStat子进程是PostgreSQL中专门的统计信息收集器进程。表和索引的行数、块数等统计信息记录在系统表pg_class中,其他的统计信息主要收集在系统表pg_statistic中。 统计信息...

PostgreSQL 妙用explain Plan Rows快速估算结果集数量

http://people.planetpostgresql.org/dfetter/index.php?/archives/80-Approximate-Counts.html 通过这种方法,我们可...
  • wzyzzu
  • wzyzzu
  • 2015年12月22日 18:43
  • 667

PostgreSQL表的行数统计

PostgreSQL表的行数统计   在很多情况下我们需要知道一个表的记录数有多少。如果你发现你有这样的需求,你还应该问问这样的统计的精确度到底又多高。如果你在做会计报表,你需要非常的精确...
  • wzyzzu
  • wzyzzu
  • 2015年11月04日 16:45
  • 334

PostgreSQL将查询结果输出到新表

方式1–新建表后插入查询结果 通过CREATE TABLE新建表 通过INSERT将查询结果插入到新表INSERT INTO films SELECT * FROM tmp_films WHERE d...

查Postgresql 数据库、各表占用磁盘大小

SELECT d.datname AS Name, pg_catalog.pg_get_userbyid(d.datdba) AS Owner, CASE WHEN pg_catalog.h...
  • rocklee
  • rocklee
  • 2016年04月26日 15:56
  • 3911

pg数据库分页可使用limit,offset

7.6. LIMIT 和 OFFSET附加上 LIMIT和OFFSET 子句之后,你就可以检索原来查询语句查询出来的结果中的一部分数据行: SELECT select_list FROM tabl...

PostgreSQL分页

如果用过mysql,那么对 select * from xxx limit x,y;这样的语法会很熟悉。 不过pg是不支持这样的语法的,但支持 select * from xxx limit p...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:postgreSQL 另一种查看表记录总数的方法
举报原因:
原因补充:

(最多只允许输入30个字)