如何计算保存在磁盘上的表的大小? 在我的网上搜索中,如何根据以下公式计算表格的长度:
8KB×ceil(记录数/层(楼层(8KB×填充因子-24)/(28 + 1条记录的数据长度)))
示例:
Column | Type |
aid | integer |
bid | integer |
abalance | integer |
filler | character(84) |
1条记录的数据长度=辅助(4个字节)+投标(4个字节)+余额(4个字节)+填充符(84个字节+ 1个字节)= 97个字节 记录的数据长度必须四舍五入为8个字节。
=> 1条记录的数据长度为104个字节。
因此,我认为1个字符包含在1个字节的内存中。 但是,“ filler”列可以输入84个字符“ a”(单字节)或84个字符“あ”(双字节)
我不知道为什么单字节字符中可以包含双字节字符? 你能向我解释这个问题吗?
答案 0 :(得分:0)
要简单得多。使用pg_relation_size
仅计算一个关系的大小(不使用关联的TOAST表和索引),或者使用pg_total_relation_size
来计算所有关联的对象。