Postgres 中数组的开销是多少?

dav*_*tgq 5 postgresql array

与相同数据类型的普通列相比,数组的额外开销是多少?换句话说,如果一个数组几乎总是有一个值,那么使用数组而不是普通列会“浪费”多少空间?

小智 6

您可以使用以下命令检查pg_column_size()

select pg_column_size(1::integer) as int_size, 
       pg_column_size(array[1]::integer[]) as array_size
Run Code Online (Sandbox Code Playgroud)

返回:

select pg_column_size(1::integer) as int_size, 
       pg_column_size(array[1]::integer[]) as array_size
Run Code Online (Sandbox Code Playgroud)

因此,对于单个值来说,开销是巨大的。

  • @a_horse_with_no_name 但是,如果您认为数组的存储开销很糟糕,请尝试额外的 2 列表的存储开销。 (4认同)