Загадка №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
427
4 hours ago 00:48:10 3
Тайны Луны: Базы НЛО, Фальшивые Фото и Послание Создателей!
3 days ago 00:52:06 1
Андрей Девятов. Куда идет король — большой секрет!
3 days ago 00:07:25 1
Патогенез Сахарного Диабета 1 и 2 типов (часть 1)
3 days ago 00:13:26 1
Патогенез Сахарного Диабета 1 и 2 типов (часть 2)
1 month ago 01:43:17 1
Тайная Доктрина - Онлайн класс изучения. 2-я Станца, 3-я Шлока. 13 октября 2022
1 month ago 01:33:08 5
Питер Брейгель: «Всё тайное становится явным» #ещенепознер