sql - 获取 Postgres 数据库中每个表的行数

标签 sql postgresql

获取数据库中所有表的行数的最有效方法是什么?

我正在使用 Postgres 数据库。

示例结果

table_name     row_count
------------   -------------
some_table     1,234
foobar         5,678
another_table  32
... 

最佳答案

如果你想要一个特定表的行数那么它就可以了

SELECT reltuples FROM pg_class WHERE oid = 'my_schema.my_table'::regclass;

reltuples is a column from pg_class table, it holds data about "number of rows >in the table. This is only an estimate used by the planner.

如果您想要一个包含所有表及其行数的列表,那么它就可以完成

SELECT
  pgClass.relname   AS tableName,
  pgClass.reltuples AS rowCount
FROM
  pg_class pgClass
INNER JOIN
  pg_namespace pgNamespace ON (pgNamespace.oid = pgClass.relnamespace)
WHERE
  pgNamespace.nspname NOT IN ('pg_catalog', 'information_schema') AND
  pgClass.relkind='r'

"Why is "SELECT count(*) FROM bigtable;" slow?" : count(*)

关于sql - 获取 Postgres 数据库中每个表的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28667604/

相关文章:

java - 使用 Spring Data Jpa 获取连接对象

SQL 检索包含其他表中所有行的行

ruby-on-rails - Postgres 服务器错误 -> PGError : could not connect to server

mySQL GROUP_CONCAT - 查询

mysql - 寻求一种快速更新包含重复值的记录的方法

java - 使用java将从Postgres数据库收集的数据写入文本文件

sql - 在连接表中的 SQL 中为每个 id 返回一个结果

sql - 如何过滤偶数和奇数并将它们移动/复制到空列?

SQL Oracle - 如何找到同一个表的最终值?

mysql - SQL - 来自 3 个不同表的联合计数(*)导致笛卡尔积