Я знаю, что в SQL мы можем сжимать текстовое поле следующим образом:
CREATE TABLE TableName (FieldName CHARACTER(255) WITH COMPRESSION);
Я хочу знать, как добиться сжатия текста в Postgres.
Ответ 1
Сжатие включено по умолчанию для всех типов строк, вам не нужно сообщать базе данных об этом. Ознакомьтесь с руководством по эксплуатации TOAST
PLAIN предотвращает сжатие или
внешнее хранилище; кроме того, он
отключает использование однобайтовых заголовков
для типов varlena. Это единственное
возможная стратегия для столбцов
типы данных, не соответствующие TOAST.
EXTENDED позволяет как сжатие, так и
внеочередное хранилище. Это
по умолчанию для большинства TOAST-данных
типы. Будет выполнено сжатие.
сначала, а затем вне очереди, если
строка все еще слишком большая.
EXTERNAL позволяет хранить в автономном режиме
но не сжатия. Использование ВНЕШНЕГО
будет выполнять операции подстроки
расширенный текст и столбцы bytea
(при увеличении объема хранения
пространство), поскольку эти операции
оптимизирован для получения только требуемых
части значения вне линии, когда
он не сжимается.
MAIN позволяет сжатие, но не
внеочередное хранилище. (На самом деле,
внеочередное хранилище будет по-прежнему
выполняется для таких столбцов, но только
в крайнем случае, когда нет
другой способ сделать строку маленькой
достаточно, чтобы поместиться на странице.)