У меня есть большая база данных PostgreSQL размером более 500 ГБ, которая слишком велика. Есть ли способ сжать базу данных до более управляемого размера? Я пытался сделать это с SquashFS и базой данных, сжатой до 177 ГБ, однако PostgreSQL требует, чтобы база данных имела доступ для записи, а Squashed системы были доступны только для чтения. Есть ли у более опытных пользователей базы данных какие-либо предложения для достижения этой цели?
База данных содержит данные ГИС для планеты и будет использоваться локально в развернутой системе. В настоящее время он находится на твердотельном накопителе емкостью 1 ТБ, однако я стараюсь избегать установки дополнительного жесткого диска просто для размещения большой базы данных. База данных работает без каких-либо проблем, я просто хотел бы сжать ее до более удобного размера и не размещать на отдельном диске.
источник
Ответы:
Файловая система
Очень популярный способ сделать это с файловой системой. BTRFS и ZFS работают в базе данных на уровне файловой системы. Оба могут использоваться в устройстве с обратной связью, чтобы вы могли предоставить сжатое табличное пространство, не имея другого раздела. Есть предостережения с этим, если табличное пространство терпит неудачу, это может занять и ваш кластер.
ZFS
ZFS здесь самый большой. Это то, что я хотел бы пойти.
Смотрите также
Btrfs
Btrfs - сильный соперник, но он активно разрабатывался в течение очень долгого времени, и из-за отсутствия крупных дистрибутивов, выбирающих его по умолчанию, многие люди задаются вопросом, готов ли он к «прайм-тайм».
PostgreSQL
ГИС Методы (ПостГИС)
Для полигонов один из методов - упростить полигоны, отбрасывая вершины с помощью
ST_Simplify
.Для точек один метод - пространственная кластеризация .
Оба из них приводят к потере информации. PostGIS, как и большинство функций базы данных, не имеет прозрачной опции «волшебного сжатия».
cstore_fdw
Также
cstore_fdw
есть колоночный магазин, который предлагает сжатие. У него другой профиль производительности, так чтоисточник