如何获取 PostgreSQL jsonb 字段的大小?

How to get size of PostgreSQL jsonb field?

我在 table 中有一个带有 jsonb 字段的 table。

CREATE TABLE data.items
(
  id serial NOT NULL,
  datab jsonb
)

如何在这样的查询中获取该字段的大小:

select id, size(datab) from data.items

用于存储的字节数:

select id, pg_column_size(datab) from data.items;

对于jsonb对象上的元素个数:

select id, jsonb_array_length(datab) from data.items;

如果列使用扩展存储(TOAST 压缩),您应该使用 octet_length(datab::text) 而不是 pg_column_size