我正在使用 9.1 并且dpi
在数据库中调用了一个表,其中 UTF-8 编码当前位于 18,628 行。那里有一TEXT
列叫做foto
B64 字符串,代表一个唯一的图像文件。
我想弄清楚一行需要多少磁盘空间。有18050行与非NULL
的价值foto
,并length()
为所有这些为87384。
我不明白的是这个。运行select * from pgstattuple('dpi');
返回:
-[ RECORD 1 ]------+--------
table_len | 5890048
tuple_count | 18628
tuple_len | 5656063
tuple_percent | 96.03
dead_tuple_count | 0
dead_tuple_len | 0
dead_tuple_percent | 0
free_space | 92752
free_percent | 1.57
Run Code Online (Sandbox Code Playgroud)
跑步
select pg_size_pretty(pg_relation_size(c.oid)) AS "size"
from pg_class c
where relname = 'dpi';
Run Code Online (Sandbox Code Playgroud)
我得到以下信息:
size
---------
5752 kB
(1 row)
Run Code Online (Sandbox Code Playgroud)
这里到底发生了什么?为什么这张桌子这么小?
编辑:另外,我检查了/var/lib/postgresql/9.1/main …