Бране на c) от вашите въпроси:
Както @Craig вече обясни
, колони, които са „способни на TOAST“ и са по-големи от определен праг, се съхраняват извън линия в специална TOAST таблица за таблица (отделни „разклонения на релации“, отделни файлове на диска). И така, 5 MB bytea
колоната ще остане почти недокосната при актуализация, ако самата колона не бъде променена. Ръководството:
Удебелен акцент е мой.
Редът в разклонението на главната релация все още се копира и мъртъв ред остава зад него, когато се актуализира (независимо дали някакви стойности действително са променени). За големи размери на редове следното решение може да се изплати:
Създайте малка отделна таблица 1:1 за често променяни флагове. Само първичния ключ (=външен ключ в същото време) и често променяните флагове. Това ще направи актуализациите много по-бързи и ще запази дисковото пространство - за първоначални допълнителни разходи и някои разходи за заявки, които трябва да се присъединят към двете таблици (други заявки всъщност стават по-бързи). Повече за изискването за дисково пространство на редовете на таблицата: