Сжатие строк в PostgreSQL для очень длинных значений работает с использованием технологии TOAST (The Oversized-Attribute Storage Technique). 15
PostgreSQL использует фиксированный размер страницы (обычно 8 КБ) и не позволяет кортежам занимать несколько страниц. 1 Поэтому непосредственно хранить очень большие значения полей невозможно. 1
TOAST подразумевает несколько стратегий: 2
По умолчанию TOAST срабатывает, если в таблице есть столбцы переменной длины, а размер данных строки превышает TOASTTUPLETHRESHOLD (обычно 2 КБ). 5 Сначала данные сжимаются, затем, если они всё ещё слишком большие, сохраняются вне строки. 5
Метод, который будет применяться для сжатия данных при внутреннем и внешнем хранении, можно выбрать для каждого отдельного столбца, задав параметр COMPRESSION в команде CREATE TABLE или ALTER TABLE. 1