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.
sumber
Jawaban:
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)
Untuk Poligon, salah satu metode adalah menyederhanakan poligon dengan menjatuhkan simpul
ST_Simplify
.Untuk Poin, satu metode adalah pengelompokan spasial .
Kedua hal ini mengakibatkan hilangnya informasi. PostGIS, seperti sebagian besar fitur basis data, tidak memiliki opsi transparan "kompresi ajaib".
cstore_fdw
Ada juga
cstore_fdw
yang merupakan toko kolom yang menawarkan kompresi. Ini memiliki profil kinerja yang berbeda jadi ymmv.sumber