查询pg数据库表占用空间大小的方法如下:
1. 首先,确保已经安装了PostgreSQL数据库。如果没有安装,可以使用以下命令进行安装:
对于Windows系统:
```
msi install postgresql-12.x-x64.x86.exe
```
对于Linux系统:
```
sudo apt-get install postgresql postgresql-contrib
```
2. 连接到PostgreSQL数据库:
```
psql -U your_username -d your_database_name
```
3. 查看表的详细信息:
```
SELECT * FROM information_schema.tables WHERE table_type = 'BASE TABLE';
```
4. 从上一步的结果中选择要查询的表名,然后执行以下查询:
```
SELECT relname AS "Table Name", reltuples AS "Rows", relrowids AS "Row IDs", reloptions AS "Other Options" FROM pg_class WHERE relname = 'your_table_name';
```
将`'your_table_name'`替换为实际的表名。
5. 查询表的列和约束信息:
```
SELECT relname, column_name, data_type, constraints::text AS "Constraints" FROM pg_attribute WHERE relname = 'your_table_name';
```
将`'your_table_name'`替换为实际的表名。
6. 查询表的索引信息:
```
SELECT relname, indexrelid, indisprimary AS "Is Primary Key", indisunique AS "Is Unique Key" FROM pg_index WHERE relname = 'your_table_name';
```
将`'your_table_name'`替换为实际的表名。
7. 查询表的分区信息:
```
SELECT relname, partitionlist, partition_method, is_replicated FROM pg_class WHERE relname = 'your_table_name';
```
将`'your_table_name'`替换为实际的表名。
8. 查询表的存储引擎信息:
```
SELECT type, engine FROM pg_class WHERE relname = 'your_table_name';
```
将`'your_table_name'`替换为实际的表名。
9. 查询表的空间占用情况:
```
SELECT relname AS "Table Name", (bytes/1024/1024) AS "Size in MB", (bytes/1024/1024) / 1024 AS "Size in GB" FROM pg_class WHERE relname = 'your_table_name';
```
将`'your_table_name'`替换为实际的表名。
10. 查询表的创建时间:
```
SELECT relname AS "Table Name", createtime FROM pg_class WHERE relname = 'your_table_name';
```
将`'your_table_name'`替换为实际的表名。
通过以上步骤,可以查询到PostgreSQL数据库中指定表的大小、行数、行ID、其他选项、列和约束信息、索引信息、分区信息、存储引擎信息以及创建时间等信息。