PostgreSQL 统计所有数据表各自的总行数
一般来说,可以使用 count(*) 来获取具体某张表的总行数:
SELECT count(0) FROM t_user;
如果想获得所有表的行数信息,可以使用以下 SQL 语句:
SELECTrelname,reltuples
FROMpg_classCLS LEFT JOIN pg_namespace N ON ( N.oid = CLS.relnamespace )
WHEREnspname NOT IN ( 'pg_catalog', 'information_schema' )AND relkind = 'r'
ORDER BYreltuples DESC;
该语句执行非常迅速,但不太精准,用于数据规模估算时非常有用。
更精确的计算方法是创建一个函数来实现统计功能:
CREATE TYPE table_count AS (table_name TEXT, num_rows INTEGER);CREATE OR REPLACE FUNCTION count_em_all () RETURNS SETOF table_count AS '
DECLAREthe_count RECORD;t_name RECORD;r table_count%ROWTYPE;BEGINFOR t_name INSELECTc.relnameFROMpg_catalog.pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespaceWHEREc.relkind = ''r''AND n.nspname = ''public''ORDER BY 1LOOPFOR the_count IN EXECUTE ''SELECT COUNT(*) AS "count" FROM '' || t_name.relnameLOOPEND LOOP;r.table_name := t_name.relname;r.num_rows := the_count.count;RETURN NEXT r;END LOOP;RETURN;
END;
' LANGUAGE plpgsql;
这段代码创建了一个名为 count_em_all 的函数,调用该函数即可获得准确的统计信息。需要注意的是,如果数据库中数据较多,该函数执行时会消耗更多的时间:
SELECT*
FROMcount_em_all ( ) AS r
ORDER BYr.num_rows DESC;
PostgreSQL 统计所有数据表各自的总行数相关推荐
- PostgreSQL学习手册(数据表)
一.表的定义: 对于任何一种关系型数据库而言,表都是数据存储的最核心.最基础的对象单元.现在就让我们从这里起步吧. 1. 创建表: CREATE TABLE products ( ...
- 输出一个文件的最后n行数据,如果文件总行数不足n行,则显示全部数据
C程序,功能如题,代码如下: /* 功能:输出一个文件的最后n行数据,如果文件总行数不足n行,则显示全部数据 基本思路:产生一个长度为n的二维数组,将它作为一个循环队列来看待 */ #include ...
- PostgreSQL:四. 数据表的基本操作
四. 数据表的基本操作 4.1 创建数据表 下面的案例是如何添加主键约束,外键约束,唯一约束,非空约束,默认约束等: 1.使用主键约束:有单字段主键,多字段联合主键: [例1]定义数据表tb_emp1 ...
- 查询大量数据表的总记录数
1.普通 select count(*) from table; 几千万条数据好几分钟 2.快速查询表的总记录数 select table_name,t.num_rows,t.last_analyze ...
- postgresql 数据表【转】
原文:http://www.cnblogs.com/stephen-liu74/archive/2011/12/16/2290803.html 一.表的定义: 对于任何一种关系型数据库而言,表都是数据 ...
- java语言获取数据库中的表的总行数
java语言从数据库中获取表的总行数 #java语言从数据库中获取表的总行数 获取数据库表中的总行数,用于做分页查询的动态更新.在这里我也是迷了半天,下面给出代码,应该所有的查询行数的代码都是这种的格 ...
- PostgreSql数据表清理
PostgreSql数据表清理 前言:当PostgreSQL数据库中的表进行更新或删除操作时,死亡行( 被称为元组 )会被遗留下来.使用VACUUM会把它们除去,使空间能被重新利用.如果一个表没有被清 ...
- 4.3 数据表中的行汇总统计
对数据表中的行进行汇总统计是一项经常性而又非常有用的数据库操作.例如,在销售管理中除了计算销售总额之外,用户可能还需要了解某个代理商的上月销售额. Access提供了一种新的简便方法(即,汇总 ...
- Postgresql相关数据库、表占用磁盘大小统计
1. 统计数据库大小 单个数据库的大小 select pg_size_pretty (pg_database_size('test_database'): 所有数据库的大小 select datnam ...
最新文章
- python蜡烛图预测_python tushare股票K线蜡烛图绘制
- 【Linux】一步一步学Linux——nisdomainname命令(171)
- book: Effective Java
- CCNA知识总结(一)
- 一图理解M0不同优先级中断及Pendsv切换
- 西门子电机选型参考一
- 如何把一张照片的像素提高_不改变像素尺寸怎么增加图片的文件大小
- Python—网络编程_Mail
- 怎么给word文档注音_Word文档中,怎样全篇加注拼音?
- 华为畅享max什么时候鸿蒙,华为鸿蒙系统正式推送 具体怎么样及支持哪些手机带你前先看...
- jones 的 C语言复习
- 银河系创投徐芳:专注B2B这片热土,燃起产业新势能
- 一步教你超简单设置Android Studio背景图片
- Node.js websocket/ws 详解
- ubuntu 查找历史命令
- 简单实现RAS加密-java
- 决战Go语言从入门到入土v0.1
- java.io.IOException: exception unwrapping private key - java.security.InvalidKeyException
- Solaris11自带php配置,solaris11网络相关配置
- 帆软 FineReport 绘制折线图