一般来说,可以使用 count(*) 来获取具体某张表的总行数:

SELECT count(0) FROM t_user;

如果想获得所有表的行数信息,可以使用以下 SQL 语句:


  1. SELECT
  2. relname,
  3. reltuples
  4. FROM
  5. pg_class
  6. CLS LEFT JOIN pg_namespace N ON ( N.oid = CLS.relnamespace )
  7. WHERE
  8. nspname NOT IN ( 'pg_catalog', 'information_schema' )
  9. AND relkind = 'r'
  10. ORDER BY
  11. reltuples DESC;

该语句执行非常迅速,但不太精准,用于数据规模估算时非常有用。

更精确的计算方法是创建一个函数来实现统计功能:


  1. CREATE TYPE table_count AS (table_name TEXT, num_rows INTEGER);
  2. CREATE OR REPLACE FUNCTION count_em_all () RETURNS SETOF table_count AS '
  3. DECLARE
  4. the_count RECORD;
  5. t_name RECORD;
  6. r table_count%ROWTYPE;
  7. BEGIN
  8. FOR t_name IN
  9. SELECT
  10. c.relname
  11. FROM
  12. pg_catalog.pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
  13. WHERE
  14. c.relkind = ''r''
  15. AND n.nspname = ''public''
  16. ORDER BY 1
  17. LOOP
  18. FOR the_count IN EXECUTE ''SELECT COUNT(*) AS "count" FROM '' || t_name.relname
  19. LOOP
  20. END LOOP;
  21. r.table_name := t_name.relname;
  22. r.num_rows := the_count.count;
  23. RETURN NEXT r;
  24. END LOOP;
  25. RETURN;
  26. END;
  27. ' LANGUAGE plpgsql;

这段代码创建了一个名为 count_em_all 的函数,调用该函数即可获得准确的统计信息。需要注意的是,如果数据库中数据较多,该函数执行时会消耗更多的时间:


  1. SELECT
  2. *
  3. FROM
  4. count_em_all ( ) AS r
  5. ORDER BY
  6. r.num_rows DESC;
文章知识点与官方知识档案匹配,可进一步学习相关知识

[转帖]PostgreSQL 统计所有数据表各自的总行数的更多相关文章

  1. [转] PostgreSQL学习手册(数据表)

    from: http://www.cnblogs.com/stephen-liu74/archive/2012/04/23/2290803.html 一.表的定义: 对于任何一种关系型数据库而言,表都 ...

  2. PostgreSQL学习手册(数据表)<转>

    一.表的定义: 对于任何一种关系型数据库而言,表都是数据存储的最核心.最基础的对象单元.现在就让我们从这里起步吧.    1. 创建表:    CREATE TABLE products (      ...

  3. mysqldump 导出统一限制每张数据表导出的记录数

    mysqldump 导出统一限制每张数据表导出的记录数 在工作过程中,需要将生产的数据导出到本地开发环境,我希望可以导出部分数据.而服务器数据量比较大(上千万),如果选择直接从服务器导出数据, 正在运 ...

  4. 使用一个T-SQL语句批量查询数据表占用空间及其行数

    原文:使用一个T-SQL语句批量查询数据表占用空间及其行数 要找到数据库中数据表占用的空间和存在的行数.可以使用sp_spaceused搭配数据表的名称.就可以产生该表耗用的空间和现有行数. 如: U ...

  5. [转帖]PostgreSQL pg_dump&psql 数据的备份与恢复

    PostgreSQL pg_dump&psql 数据的备份与恢复   https://www.cnblogs.com/chjbbs/p/6480687.html 文章写的挺好 今天试了下 挺不 ...

  6. 统计MySQL数据表大小

    SELECT CONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),'MB') AS data_size,CONCAT(TRUNCATE(SUM(max_data ...

  7. POSTGRESQL 查看数据库 数据表大小

    1.查看数据库大小: select pg_database_size('log_analysis'); select pg_database_size('log_analysis'); pg_data ...

  8. 数据库表数据统计及数据表的数据大小统计SQL

    USE [YourDBName] -- replace your dbname GO SELECT s.Name AS SchemaName, t.Name AS TableName, p.rows ...

  9. 一个查询指定错误记录数据表错误记录条数的shell脚本

    #!/bin/bash #author:skycheng #parameters db_user=dbuser db_pass=dbpass db_host=xxx.xxx.xxx.xxx datab ...

  10. mysql 表查询结果 总行数计算

    一般的查询语句是这样的 SELECT  id,name FROM SystemEvents WHERE  1=1 limit 9,10 SELECT  * FROM SystemEvents WHER ...

随机推荐

  1. java实现一个录像大师

    java实现一个录像大师 javacv从入门到入土系列,发现了个好玩的东西,视频处理,于是我想搞了个屏幕录屏大师,这里我使用javafx进行页面显示. 依赖 <!-- 需要注意,javacv主要 ...

  2. 花了1块钱体验一把最近很火的ChatGPT

    前言 最近 OpenAI 发布了 ChatGPT,一经发布就在科技圈火得不行. ChatGPT是什么呢? 简单得说,ChatGPT,是一种基于对话的 AI 聊天工具.我们来看看ChatGPT自己得回答 ...

  3. 实践案例丨Pt-osc工具连接rds for mysql 数据库失败

    [现象] 主机可以telent 通rds 端口,并且使用mysql-client 连接正常: 如下图所示:使用pt-osc工具连接时,一直没有响应,一直卡在哪里 等了4-5分钟左右后,会有响应,如下图 ...

  4. 直播实时数仓基于DataLeap开放平台在发布管控场景的业务实践

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 背景 业务背景 随着字节业务的高速增长,业务场景越来越丰富,业务基于数据做的决策也越来越多,对数据的时效性要求也越 ...

  5. 火山引擎DataLeap数据质量动态探查及相关前端实现

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 需求背景 火山引擎DataLeap数据探查上线之前,数据验证都是通过写SQL方式进行查询的,从编写SQL,到解析运 ...

  6. Solon2 接口开发: 了解 LoadBalance

    上一文的代码 HttpUtils.http(sevName, ctx.path()) (来自 "solon.cloud.httputils" 插件的工具类),内部是通过 sevNa ...

  7. PPT 画册风格

    图片嵌入 图片填充 图片裁剪 字体 PPT 关掉再打开. 排列对齐 图片下载 https://www.pexels.com http://www.500px.com http://www.bing.c ...

  8. MyBatis Mapper.XML 标签使用说明

    直接将值返回给对象 <select id="list" resultType="com.vipsoft.base.entity.UserInfo"> ...

  9. Mysql--日期,时间相关

    一.日期,时间戳格式转换 在数据库中,时间的存储格式一般为时间戳,但这样对于使用人员不太方便,故在查询时可以先转换格式 1.1.FROM_UNIXTIME() 将时间戳转换为日期格式 > sel ...

  10. 【HZERO】消息发送

    消息发送 https://open.hand-china.com/community/detail/625843016338378752 新建模板 @Override public String sh ...