Есть ли какой-нибудь способ сжать огромную таблицу базы данных в PostgreSQL?

#database #postgresql #compression

#База данных #postgresql #сжатие

Вопрос:

У меня есть база данных PostgreSQL с огромной таблицей (2 миллиарда записей), и я ищу любое решение для сжатия содержимого таблицы.

Вот описание моей таблицы:

Описание таблицы

Мой вопрос: есть ли какой-нибудь способ сжать таблицу?

Комментарии:

1. В PostgreSQL такой опции нет. Вы хотите сэкономить место на диске или у вас есть другая причина?

2. Я хочу сэкономить место на диске

Ответ №1:

В PostgreSQL нет способа сжать такую таблицу, извините.

Вы можете сэкономить пару байтов (заполнение), тщательно расположив столбцы: начните со столбцов timestamp bigint и double precision (8 байт), затем integer со boolean столбцов и (4 байта), затем со столбцов переменной длины.

Но это даст вам всего несколько байтов на строку, и это невозможно сделать без перезаписи таблицы, что, вероятно, не вариант. Все пространство, которое вы могли бы получить, вероятно, уменьшится из-за накладных расходов, фрагментации и раздувания таблицы, что (в некоторой степени) неизбежно.

Я бы вложил средства в получение большего пространства для хранения.

Комментарии:

1. Спасибо за ваш ответ! что вы думаете об использовании varchar или текстовых столбцов?

2. Это не имеет значения. Внутренне они одинаковы.