Re: jsonb on-disk size calculation
От | Junwang Zhao |
---|---|
Тема | Re: jsonb on-disk size calculation |
Дата | |
Msg-id | CAEG8a3Kf7b2g8pz1jYJP08OC4jkC7sXGrLb5bX6XAPCLerd0dw@mail.gmail.com обсуждение исходный текст |
Ответ на | jsonb on-disk size calculation (jian he <jian.universality@gmail.com>) |
Список | pgsql-general |
convertJsonbObject convert JsonValue to Jsonb. Jsonb->vl_len_ is 4 byte JsonbContainer->header is 4 bytes JsonbContainer->children is an array of two elements, that's 8 bytes following the k/v part, 20 bytes In total 36 bytes. When Jsonb is stored to disk, I guess some conversion reduces the vl_len_ to 1 byte, hence total 33 bytes, but I cannot find the conversion logic. On Mon, Jul 31, 2023 at 7:10 PM jian he <jian.universality@gmail.com> wrote: > > > hi. > > drop table x; > create table x(js jsonb); > insert into x select '{"Hello world":1}'::jsonb; > select pg_column_size(js) from x; -- return 33. > > based on src/include/utils/jsonb.h > The key and value part is 20 bytes (is it correct?), Jsonb->vl_len_ is 4 byte, JsonbContainer->header is 4 bytes. That's28 bytes. > > but now on-disk is 33 bytes. > so I am not sure where the remaining bytes are. > > > > > -- Regards Junwang Zhao
В списке pgsql-general по дате отправления: