powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Насколько JsonB B ?
6 сообщений из 6, страница 1 из 1
Насколько JsonB B ?
    #38954365
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
select pg_column_size('{"a":13214,"b":13214}'::jsonb)


50
Код: sql
1.
select pg_column_size('{"a":3214,"b":3214}'::jsonb)


44
Код: sql
1.
select pg_column_size('{"b":[1,2,3,4]}'::jsonb);


72
Код: sql
1.
select pg_column_size('{"b":[1,2,3,4,5]}'::jsonb);


84
Код: sql
1.
select pg_column_size('{"bb":[1,2,3,4,5]}'::jsonb);


84
Код: sql
1.
select pg_column_size('{"bbb":[1,2,3,4,5]}'::jsonb);


84
Код: sql
1.
select pg_column_size('{"bbbb":[1,2,3,4,5]}'::jsonb);


84
Код: sql
1.
select pg_column_size('{"bbbbb":[1,2,3,4,5]}'::jsonb);


88

Получается, если не нужен поиск внутри json, то хранить лучше в типе json, а не jsonb?
...
Рейтинг: 0 / 0
Насколько JsonB B ?
    #38954383
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк,

Вы на полях нормального размера и сложной структуры потестируйте для начала.
А то таким тестами можно решить что архиваторы не нужны так как они увеличивают размер 10 байтового файла при сжатии :).


--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Насколько JsonB B ?
    #38954530
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim BogukВы на полях нормального размера и сложной структуры потестируйте для начала.
А то таким тестами можно решить что архиваторы не нужны так как они увеличивают размер 10 байтового файла при сжатии :).

В результате теста я вижу, что добавление 1 числа в массив дает +12 байт к размеру jsonb, притом каждое увеличение разрядности числа кратное 4-м дает еще +2 байта, и это весьма печально. Мне нужно было сохранить несколько таких массивов в поле + еще пара параметров - это мои реальные данные на которых я вижу, что jsonb дает значительный оверхед.
...
Рейтинг: 0 / 0
Насколько JsonB B ?
    #38954553
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин МаркMaxim BogukВы на полях нормального размера и сложной структуры потестируйте для начала.
А то таким тестами можно решить что архиваторы не нужны так как они увеличивают размер 10 байтового файла при сжатии :).

В результате теста я вижу, что добавление 1 числа в массив дает +12 байт к размеру jsonb, притом каждое увеличение разрядности числа кратное 4-м дает еще +2 байта, и это весьма печально. Мне нужно было сохранить несколько таких массивов в поле + еще пара параметров - это мои реальные данные на которых я вижу, что jsonb дает значительный оверхед.

Это уже издержки возможности быстрого поиска внутри json насколько я понимаю.
Но надо учитывать что сжатие поля включается только по достижению 1Kb размера если меня память не подводит.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Насколько JsonB B ?
    #38954614
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim BogukЭто уже издержки возможности быстрого поиска внутри json насколько я понимаю.
Ну вот мне и интересно, что если поиск внутри этого поля мне не критичен, то выходит, что лучше json, а не jsonb.
Maxim BogukНо надо учитывать что сжатие поля включается только по достижению 1Kb размера если меня память не подводит.
2Kb, но оно будет выполняться и для json и для jsonb, причем например json
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
'{"a":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "b":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "c":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], 
 "d":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],  "e":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "f":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 "g":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "h":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "i":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 "j":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "k":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "l":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 "m":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "n":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "o":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 "p":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "q":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "r":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 "s":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "t":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "u":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 "v":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "w":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 "y":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "z":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "a1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 "d1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "e1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "f1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 "g1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "h1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "i1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 "j1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "k1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "l1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 "m1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "n1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "o1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 "p1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "q1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "r1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
}'


приведенный к json занимает 265 байт против 341 в jsonb.
...
Рейтинг: 0 / 0
Насколько JsonB B ?
    #38954708
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин МаркНу вот мне и интересно, что если поиск внутри этого поля мне не критичен, то выходит, что лучше json, а не jsonb.


тогда уж в bzip2 сразу и хранить в Bytea распаковывая на клиенте... наверное самый экономный способ если место критично :).
Заодно и траффик поменьше с базы будет.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Насколько JsonB B ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]