📜  PostgreSQL – 数据库的大小(1)

📅  最后修改于: 2023-12-03 15:18:38.794000             🧑  作者: Mango

PostgreSQL – 数据库的大小

PostgreSQL 是一个开源的关系型数据库管理系统,是世界上最受欢迎的开源关系型数据库之一。在 PostgreSQL 中,有几种不同的方法来评估您的数据库大小。这些方法包括使用常规的数据库查看工具,如 psqlpgAdmin,或者使用 SQL 查询来获取特定的大小指标。在本文中,我们将探讨一些常用的方法来评估 PostgreSQL 数据库的大小。

使用 psqlpgAdmin 查看数据库大小

使用 psqlpgAdmin 工具查看 PostgreSQL 数据库的大小非常简单。以下是一些常用的方法:

查询表的大小

您可以在 psqlpgAdmin 中执行以下命令以获取表的大小:

SELECT pg_size_pretty(pg_total_relation_size('table_name'));

其中 table_name 是要获取大小的表的名称。该命令将返回一个易于理解的格式,代表表的总大小。

查询数据库的大小

您可以使用以下 SQL 命令来获取整个 PostgreSQL 数据库的大小:

SELECT pg_size_pretty(pg_database_size('database_name'));

其中 database_name 是要获取大小的数据库的名称。该命令将返回一个易于理解的格式,代表整个数据库的总大小。

使用 SQL 查询来评估数据库大小

您可以使用 PostgreSQL 内置的信息模式和系统视图查询来评估数据库的大小和其他指标。以下是一些常用的查询:

获取表、索引和 TOAST 表的大小

以下查询将返回一个表的总大小以及该表的索引和 TOAST 表的大小:

SELECT relname AS "Table",
    pg_size_pretty(pg_total_relation_size(relid)) AS "Total size",
    pg_size_pretty(pg_relation_size(relid)) AS "Data size",
    pg_size_pretty(pg_indexes_size(relid)) AS "Indexes size",
    pg_size_pretty(pg_total_relation_size(reltoastrelid)) AS "TOAST size"
FROM pg_catalog.pg_statio_user_tables
ORDER BY pg_total_relation_size(relid) DESC;
获取所有数据库的大小

以下查询将返回所有 PostgreSQL 数据库的总大小:

SELECT datname AS "Database",
    pg_size_pretty(pg_database_size(datname)) AS "Size"
FROM pg_database
ORDER BY size DESC;
获取数据库中每个表的大小

以下查询将返回数据库中每个表的总大小:

SELECT relname AS "Table",
    pg_size_pretty(pg_total_relation_size(relid)) AS "Total size"
FROM pg_catalog.pg_statio_user_tables
WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema'
ORDER BY pg_total_relation_size(relid) DESC;
结论

通过使用上述方法之一,您可以轻松地评估 PostgreSQL 数据库的大小和其他指标。无论您是使用 psqlpgAdmin 工具,还是使用 SQL 查询,在 PostgreSQL 中评估数据库大小都是非常简单和可靠的。