[转帖]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 ...
随机推荐
- HTTP 代理服务器的设计与实现(C++)
实验内容 设计并实现一个基本 HTTP 代理服务器.要求在指定端口(例如 8080)接收来自客户的 HTTP 请求并且根据其中的 URL 地址访问该地址 所指向的 HTTP 服务器(原服务器),接收 ...
- 9 个让你的 Python 代码更快的小技巧
哈喽大家好,我是咸鱼 我们经常听到 "Python 太慢了","Python 性能不行"这样的观点.但是,只要掌握一些编程技巧,就能大幅提升 Python 的运 ...
- Programming Abstractions in C阅读笔记:p202-p234
<Programming Abstractions in C>学习第65天,p202-p234总结. 一.技术总结 完成第五章学习,第五章介绍递归在实际问题中的进一步应用,例如汉诺塔问题, ...
- 共探AI大模型时代下的挑战与机遇,华为云HCDE与大模型专家面对面
摘要:近日,华为开发者大会2023(cloud)"开发者生态创新发展圆桌会议"在东莞华为溪流背坡村成功举办. 2023年7月8日,华为开发者大会2023(cloud)"开 ...
- 数仓集群管理:单节点故障RTO机制分析
摘要:大规模分布式系统中的故障无法避免.发生单点故障时,集群状态和业务是如何恢复的? 本文分享自华为云社区<GaussDB (DWS) 集群管理系列:单节点故障RTO机制分析(集群状态恢复篇)& ...
- 如何处理分析Flink作业反压的问题?
摘要:反压是 Flink 应用运维中常见的问题,它不仅意味着性能瓶颈还可能导致作业的不稳定性. 反压(backpressure)是实时计算应用开发中,特别是流式计算中,十分常见的问题.反压意味着数据管 ...
- 只需2步,教你在Vue中设置登录验证拦截
摘要:两步教你在Vue中设置登录验证拦截! 本文分享自华为云社区<两步教你在Vue中设置登录验证拦截!>,作者: 灰小猿 . 今天在做vue和springboot交互的一个项目的时候,想要 ...
- PPT 如何做出高大上的表格
字不如表.表不如图 如何做 https://www.bilibili.com/video/BV1ha411g7f5?p=17
- FrameWork使用TraeFik连接Grpc的坑
背景介绍:因为公司最近使用TraeFik来代替nginx做代理服务器.导致一些老项目访问Grpc的时候直接Status(StatusCode=Unavailable, Detail="fai ...
- fetch概述
1.基本特性 更加简单的数据获取方式,功能更强大.更灵活,可以看做是xhr的升级版 基于promise实现 2.语法结构 3.fetch的基本用法