Należy skopiować tylko pola przechowywane w tekście. W przypadku pól przechowywanych poza linią w tabelach TOAST kopiowane jest tylko odniesienie do wpisu TOAST.
To, czy pole jest przechowywane poza linią, zależy od wielkości wartości w polu i typu danych pola.
Jeśli krotki są duże, ale mają tylko kilka pól - na przykład
some_id integer,
frequently_updated integer,
charblob text
wtedy nie ma sensu zmieniać czegokolwiek, ponieważ aktualizacje frequently_updated
generalnie nie przepisuje danych w charblob
, przynajmniej jeśli jest na tyle duży, że warto się nim opiekować.
OTOH, jeśli masz tabelę z wieloma polami, z każdą aktualizacją będziesz przepisywać znacznie więcej.
HOT pomoże ci tylko w ograniczonym zakresie, ponieważ aktualizacja HOT może nastąpić tylko wtedy, gdy żadne zaktualizowane kolumny nie są częścią indeksu i na tej samej stronie bazy danych jest wystarczająco dużo wolnego miejsca. W przypadku szerokich rzędów nie zmieścisz wielu kopii na stronie, nawet w przypadku TOAST, więc HOT przyniesie ograniczone korzyści.
Warto podzielić takie pola na osobne tabele, jeśli są one naprawdę często aktualizowane, ale reszta tabeli ma szerokie wiersze, które niewiele się zmieniają.