Сжатие текста в PostgreSQL - PullRequest
       10

Сжатие текста в PostgreSQL

27 голосов
/ 27 сентября 2010

Я знаю, что в SQL мы можем сжать текстовое поле следующим образом:

CREATE TABLE TableName (FieldName CHARACTER(255) WITH COMPRESSION);

Я хочу знать, как добиться сжатия текста в Postgres.

1 Ответ

27 голосов
/ 27 сентября 2010

Сжатие включено по умолчанию для всех типов строк, вам не нужно указывать базе данных делать это. Проверьте руководство о TOAST

  • PLAIN предотвращает сжатие или хранение вне линии; кроме того это запрещает использование однобайтовых заголовков для варленых типов. Это единственный возможная стратегия для столбцов типы данных, не поддерживающие TOAST.
  • EXTENDED допускает как сжатие, так и хранение вне линии. Это по умолчанию для большинства данных, поддерживающих TOAST типы. Будет предпринята попытка сжатия во-первых, затем вне хранилища, если ряд все еще слишком большой.
  • ВНЕШНЕЕ позволяет хранение вне линии но не сжатие. Использование ВНЕШНЕГО будет выполнять операции подстроки на быстрый текст и байтовые столбцы быстрее (за штраф увеличенного хранилища пространство), потому что эти операции оптимизирован для получения только необходимого части вне строки значения, когда оно не сжато.
  • MAIN разрешает сжатие, но не хранение вне линии. (На самом деле, внешнее хранилище все еще будет выполняется для таких столбцов, но только в крайнем случае, когда нет Другой способ сделать ряд маленьким достаточно, чтобы поместиться на странице.)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...