Kompres Basis Data PostgreSQL

12

Saya memiliki database PostgreSQL besar dengan ukuran lebih dari 500GB yang terlalu besar. Apakah ada cara untuk mengompres basis data ke ukuran yang lebih mudah dikelola? Saya telah mencoba untuk melakukan ini dengan SquashFS dan database dikompresi ke 177GB namun PostgreSQL mengharuskan database memiliki akses tulis dan sistem Squashed hanya-Baca. Apakah pengguna basis data yang lebih berpengalaman memiliki saran untuk mencapai tujuan ini?

Basis data menyimpan data GIS untuk planet ini dan akan digunakan secara lokal pada sistem yang digunakan. Saat ini duduk di SSD 1TB, namun, saya mencoba untuk menghindari menampar di hard drive tambahan hanya untuk mengakomodasi basis data yang besar. Basis data berfungsi seperti yang diinginkan tanpa masalah, saya hanya ingin memampatkannya ke ukuran yang lebih mudah dikelola dan menghindari menempatkannya pada drive yang terpisah.

MH21209
sumber
Kenapa terlalu besar? Jika Anda kehabisan ruang disk, maka Anda perlu menambahkan lebih banyak disk ke sistem. Jika ada data yang tidak lagi diperlukan, Anda harus menemukan cara untuk mengarsipkannya. Kalau tidak, Anda mungkin memiliki masalah kinerja yang mungkin atau mungkin tidak dibantu oleh DB yang lebih kecil.
RDFozz
2
Basis data menyimpan data GIS untuk planet ini dan akan digunakan secara lokal pada sistem yang digunakan. Saat ini duduk di SSD 1TB namun, saya mencoba untuk menghindari menampar di hard drive tambahan hanya untuk mengakomodasi database yang besar. Basis data berfungsi seperti yang diinginkan tanpa masalah, saya hanya ingin memampatkannya ke ukuran yang lebih mudah dikelola dan menghindari menempatkannya pada drive yang terpisah.
MH21209
4
Ini pertanyaan yang cukup masuk akal. Seharusnya tidak Ditutup.
Evan Carroll

Jawaban:

10

Berkas sistem

Metode yang sangat populer untuk melakukan ini adalah dengan sistem file. BTRFS dan ZFS bekerja di bawah basis data di tingkat sistem file. Keduanya dapat digunakan dalam perangkat loopback sehingga Anda dapat menyediakan tablespace terkompresi tanpa memiliki partisi lain. Ada peringatan dengan ini, jika tablespace gagal mungkin mengambil cluster Anda juga.

ZFS

ZFS adalah yang besar di sini. Untuk itulah saya akan pergi.

Lihat juga

Btrfs

Btrfs adalah pesaing yang kuat tetapi sudah dalam pengembangan aktif untuk waktu yang sangat lama, dan kurangnya distro besar mengambilnya sebagai default telah banyak orang mempertanyakan apakah ini siap untuk "prime time" atau tidak.

PostgreSQL

Metode GIS (PostGIS)

Kedua hal ini mengakibatkan hilangnya informasi. PostGIS, seperti sebagian besar fitur basis data, tidak memiliki opsi transparan "kompresi ajaib".

cstore_fdw

Ada juga cstore_fdwyang merupakan toko kolom yang menawarkan kompresi. Ini memiliki profil kinerja yang berbeda jadi ymmv.

Evan Carroll
sumber
2
Ini persis apa yang saya cari. Saat ini saya sedang menggunakan kembali basis data saya di atas ZFS. Terima kasih.
MH21209