Загадка №2. О пропавшем времени. Почему обновление #JSONB на порядок выше чем int в #PostgreSQL?
Ответ на загадку №1
Загадка №2. Проводим эксперимент и обновление JSONB поля заняло в 300 раз больше времени. Почему?
DROP TABLE IF EXISTS t;
\timing
CREATE TABLE t AS
SELECT i AS id,
(SELECT jsonb_object_agg(j, j)
FROM generate_series(1, 1000) j) js
FROM generate_series(1, 1000) i;
Посмотрим на размер сгенерированных данных:
SELECT oid::regclass AS heap_rel,
pg_size_pretty(pg_relation_size(oid)) AS heap_rel_size,
reltoastrelid::regclass AS toast_rel,
pg_size_pretty(pg_relation_size(reltoastrelid)) AS toast_rel_size
FROM pg_class WHERE relname = ’t’;
Сама таблица будет занимать 56 Кб, а хранилище TOAST — 8 Мб.
Каждый JSONB будет 19 Кб, и он сжимается в 6 Кб
-- обновление простого поля займет
UPDATE t SET id = id 1;
-- обновление JSONB
UPDATE t SET js = js::jsonb || ’{“a“:1}’;
Подробней узнать и задать вопросы можно у меня в Telegram-канале
1 view
1058
426
1 week ago 00:32:53 1
7 Секретов Норвежской электроэнергетики! Почему только две фазы? #энерголикбез
4 weeks ago 00:24:32 2
ОНИ ПОПЛАТИЛИСЬ ЗА ЧУЖИЕ ТАЙНЫ! | ТЕОРИИ ЗАГОВОРА | Связь Беннингтона и Корнелла, Мадонна, 2PAC
4 weeks ago 00:18:54 2
Самая молодая в истории США 27 летняя пресс секретарь Трампа Каролин Левитт делится своими секретами