#database #postgresql #compression
#База данных #postgresql #сжатие
Вопрос:
У меня есть база данных PostgreSQL с огромной таблицей (2 миллиарда записей), и я ищу любое решение для сжатия содержимого таблицы.
Вот описание моей таблицы:
Мой вопрос: есть ли какой-нибудь способ сжать таблицу?
Комментарии:
1. В PostgreSQL такой опции нет. Вы хотите сэкономить место на диске или у вас есть другая причина?
2. Я хочу сэкономить место на диске
Ответ №1:
В PostgreSQL нет способа сжать такую таблицу, извините.
Вы можете сэкономить пару байтов (заполнение), тщательно расположив столбцы: начните со столбцов timestamp
bigint
и double precision
(8 байт), затем integer
со boolean
столбцов и (4 байта), затем со столбцов переменной длины.
Но это даст вам всего несколько байтов на строку, и это невозможно сделать без перезаписи таблицы, что, вероятно, не вариант. Все пространство, которое вы могли бы получить, вероятно, уменьшится из-за накладных расходов, фрагментации и раздувания таблицы, что (в некоторой степени) неизбежно.
Я бы вложил средства в получение большего пространства для хранения.
Комментарии:
1. Спасибо за ваш ответ! что вы думаете об использовании varchar или текстовых столбцов?
2. Это не имеет значения. Внутренне они одинаковы.