Когда у меня есть следующая таблица:
CREATE TABLE test
(
"id" integer NOT NULL,
"myval" text NOT NULL,
CONSTRAINT "test-id-pkey" PRIMARY KEY ("id")
)
При выполнении большого количества запросов, таких как:
UPDATE "test" set "myval" = "myval" || 'foobar' where "id" = 12345
Тогда ряд myval будет становиться все больше и больше с течением времени.
Что будет делать postgresql? Откуда он возьмет место?
Могу ли я избежать того, что postgresql нужно более одного запроса на чтение определенного myval-столбца?
Будет ли postgresql делать это автоматически?
Я знаю, что обычно я должен попытаться нормализовать данные намного больше. Но мне нужно прочитать значение одним поиском. Myval будет увеличиваться примерно на 20 байт с каждым обновлением (которое добавляет данные). Некоторые столбцы будут иметь 1-2 обновления, около 1000 обновлений.
Обычно я бы просто использовал одну новую строку вместо обновления. Но тогда выбор становится медленным.
Поэтому я пришел к мысли о денормализации.