PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menyimpan Gambar di PostgreSQL

Memperbarui ke 2012, saat kami melihat bahwa ukuran gambar, dan jumlah gambar, semakin bertambah, di semua aplikasi...

Kami membutuhkan beberapa perbedaan antara "gambar asli" dan "gambar yang diproses", seperti gambar mini.

Seperti yang dikatakan jawaban Jcoby, ada dua opsi, maka, saya sarankan:

  • gunakan gumpalan (Objek Besar Biner):untuk penyimpanan gambar asli, di meja Anda. Lihat jawaban Ivan (tidak ada masalah dengan mencadangkan gumpalan!), Modul tambahan yang disediakan PostgreSQL, How-tos, dll.

  • gunakan database terpisah dengan DBlink:untuk penyimpanan gambar asli, di database lain (bersatu/khusus). Dalam hal ini, saya lebih suka bytea , tapi gumpalan adalah dekat sama. Memisahkan basis data adalah cara terbaik untuk "layanan web gambar terpadu".

  • gunakan bytea (BYTE Array):untuk menyimpan gambar thumbnail. Cache gambar kecil untuk mengirimkannya dengan cepat ke browser web (untuk menghindari masalah rendering) dan mengurangi pemrosesan server. Cache juga metadata penting, seperti lebar dan tinggi. Caching basis data adalah cara termudah, tetapi periksa kebutuhan dan konfigurasi server Anda (mis. Modul Apache):menyimpan thumbnail di sistem file mungkin lebih baik, bandingkan kinerjanya. Ingat bahwa ini adalah layanan web (bersatu), kemudian dapat disimpan di database terpisah (tanpa cadangan), melayani banyak tabel. Lihat juga manual tipe data biner PostgreSQL, pengujian dengan kolom byte, dll.

CATATAN1:hari ini penggunaan "solusi ganda" (database+filesystem) tidak digunakan lagi (!). Ada banyak keuntungan menggunakan "hanya basis data" alih-alih ganda. PostgreSQL memiliki kinerja yang sebanding dan alat yang baik untuk ekspor/impor/input/output.

CATATAN2:ingat bahwa PostgreSQL hanya memiliki bytea , tidak memiliki BLOB default Oracle :"Standar SQL mendefinisikan (...) BLOB. Format input berbeda dari byte, tetapi fungsi dan operator yang disediakan sebagian besar sama",Manual.

EDIT 2014 :Saya belum mengubah teks asli di atas hari ini (jawaban saya adalah 22 Apr '12, sekarang dengan 14 suara), Saya membuka jawaban untuk perubahan Anda (lihat "Mode Wiki", Anda dapat mengedit!), untuk mengoreksi dan untuk pembaruan .
Pertanyaan stabil (@jawaban '08 Ivans dengan 19 suara), tolong, bantu perbaiki teks ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan NodeJS Postgres getaddrinfo ENOTFOUND

  2. Migrasi dari MySQL ke PostgreSQL

  3. Hibernasi UUID dengan PostgreSQL dan SQL Server

  4. PostgreSQL EXPLAIN – Berapa Biaya Kueri?

  5. PostgreSQL:FATAL - Otentikasi rekan gagal untuk pengguna (PG::ConnectionBad)