[转帖]PostgreSQL 统计所有数据表各自的总行数
一般来说,可以使用 count(*) 来获取具体某张表的总行数:
SELECT count(0) FROM t_user;
如果想获得所有表的行数信息,可以使用以下 SQL 语句:
-
SELECT
-
relname,
-
reltuples
-
FROM
-
pg_class
-
CLS LEFT JOIN pg_namespace N ON ( N.oid = CLS.relnamespace )
-
WHERE
-
nspname NOT IN ( 'pg_catalog', 'information_schema' )
-
AND relkind = 'r'
-
ORDER BY
-
reltuples DESC;
该语句执行非常迅速,但不太精准,用于数据规模估算时非常有用。
更精确的计算方法是创建一个函数来实现统计功能:
-
CREATE TYPE table_count AS (table_name TEXT, num_rows INTEGER);
-
-
-
CREATE OR REPLACE FUNCTION count_em_all () RETURNS SETOF table_count AS '
-
DECLARE
-
the_count RECORD;
-
t_name RECORD;
-
r table_count%ROWTYPE;
-
-
-
BEGIN
-
FOR t_name IN
-
SELECT
-
c.relname
-
FROM
-
pg_catalog.pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
-
WHERE
-
c.relkind = ''r''
-
AND n.nspname = ''public''
-
ORDER BY 1
-
LOOP
-
FOR the_count IN EXECUTE ''SELECT COUNT(*) AS "count" FROM '' || t_name.relname
-
LOOP
-
END 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
-
*
-
FROM
-
count_em_all ( ) AS r
-
ORDER BY
-
r.num_rows DESC;
[转帖]PostgreSQL 统计所有数据表各自的总行数的更多相关文章
- [转] PostgreSQL学习手册(数据表)
from: http://www.cnblogs.com/stephen-liu74/archive/2012/04/23/2290803.html 一.表的定义: 对于任何一种关系型数据库而言,表都 ...
- PostgreSQL学习手册(数据表)<转>
一.表的定义: 对于任何一种关系型数据库而言,表都是数据存储的最核心.最基础的对象单元.现在就让我们从这里起步吧. 1. 创建表: CREATE TABLE products ( ...
- mysqldump 导出统一限制每张数据表导出的记录数
mysqldump 导出统一限制每张数据表导出的记录数 在工作过程中,需要将生产的数据导出到本地开发环境,我希望可以导出部分数据.而服务器数据量比较大(上千万),如果选择直接从服务器导出数据, 正在运 ...
- 使用一个T-SQL语句批量查询数据表占用空间及其行数
原文:使用一个T-SQL语句批量查询数据表占用空间及其行数 要找到数据库中数据表占用的空间和存在的行数.可以使用sp_spaceused搭配数据表的名称.就可以产生该表耗用的空间和现有行数. 如: U ...
- [转帖]PostgreSQL pg_dump&psql 数据的备份与恢复
PostgreSQL pg_dump&psql 数据的备份与恢复 https://www.cnblogs.com/chjbbs/p/6480687.html 文章写的挺好 今天试了下 挺不 ...
- 统计MySQL数据表大小
SELECT CONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),'MB') AS data_size,CONCAT(TRUNCATE(SUM(max_data ...
- POSTGRESQL 查看数据库 数据表大小
1.查看数据库大小: select pg_database_size('log_analysis'); select pg_database_size('log_analysis'); pg_data ...
- 数据库表数据统计及数据表的数据大小统计SQL
USE [YourDBName] -- replace your dbname GO SELECT s.Name AS SchemaName, t.Name AS TableName, p.rows ...
- 一个查询指定错误记录数据表错误记录条数的shell脚本
#!/bin/bash #author:skycheng #parameters db_user=dbuser db_pass=dbpass db_host=xxx.xxx.xxx.xxx datab ...
- mysql 表查询结果 总行数计算
一般的查询语句是这样的 SELECT id,name FROM SystemEvents WHERE 1=1 limit 9,10 SELECT * FROM SystemEvents WHER ...
随机推荐
- DVWA File Inclusion(文件包含)全等级
File Inclusion(文件包含) 目录: File Inclusion(文件包含) 前言 PHP伪协议 1.Low get webshell 本地文件包含 远程文件包含 2.Medium 3. ...
- Redis 的主从复制
Redis 主从复制是指:将一台 Redis 服务器的数据复制到其它的 Redis 服务器,前者所在的 Redis 服务器也被称为 "主节点"(Master / Leader),后 ...
- 【scikit-learn基础】--『监督学习』之 均值聚类
聚类算法属于无监督学习,其中最常见的是均值聚类,scikit-learn中,有两种常用的均值聚类算法:一种是有名的K-means(也就是K-均值)聚类算法,这个算法几乎是学习聚类必会提到的算法:另一个 ...
- C++中自定义结构体或类作为关联容器的键
目录 1. 概述 2. 实例 1. 概述 STL中像set和map这样的容器是通过红黑树来实现的,插入到容器中的对象是顺序存放的,采用这样的方式是非常便于查找的,查找效率能够达到O(log n).所以 ...
- 使用 Python 将数据写入 Excel 工作表
在数据处理和报告生成等工作中,Excel 表格是一种常见且广泛使用的工具.然而,手动将大量数据输入到 Excel 表格中既费时又容易出错.为了提高效率并减少错误,使用 Python 编程语言来自动化数 ...
- 梳理数仓FI manager节点健康检查逻辑
摘要:一篇记录FI Manager节点健康检查机制的博文. 本文分享自华为云社区<GaussDB(DWS) FI manager节点健康检查逻辑梳理>,作者:配音师 . 一.相关背景 1. ...
- Open Harmony移植:build lite编译构建过程
摘要:本文介绍了build lite 轻量级编译构建系统编译构建过程,调用依赖关系等等. 本文分享自华为云社区<移植案例与原理 - build lite编译构建过程>,作者: zhushy ...
- Solon v2.2.12 发布,Java 应用开发框架
Solon 是一个高效的 Java 应用开发框架:更快.更小.更简单.它不是 Spring.没有使用 Servlet.JavaEE 接口,是一个有自己接口标准的开放生态: 150多个生态插件,可以满足 ...
- Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter
Caused by: java.lang.NoClassDefFoundError: javax/servlet/Filter at java.lang.Class.getDeclaredMethod ...
- 微软的一些公开课,Python、机器学习、SQL、AI,全部免费
大家好,我是老章,刷X看到一位博主Alif Hossain@alifcoder总结了微软的一些公开课,全部免费,蛮不错的.感兴趣可以学一波,还能领徽章. 1. 机器学习简介 本课程是学习机器学习基础知 ...