Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menyimpan gambar dalam database secara langsung atau sebagai data base64?

Saya berpendapat bahwa gambar (file) biasanya TIDAK disimpan dalam basis data yang disandikan base64. Sebagai gantinya, mereka disimpan dalam bentuk biner mentah dalam kolom atau file biner (gumpalan).

Base64 hanya digunakan sebagai mekanisme transportasi, bukan untuk penyimpanan. Misalnya, Anda dapat menyematkan gambar yang disandikan base64 ke dalam dokumen XML atau pesan email.

Base64 juga ramah streaming. Anda dapat menyandikan dan mendekode dengan cepat (tanpa mengetahui ukuran total data).

Meskipun base64 baik untuk transportasi, jangan simpan gambar Anda yang dikodekan base64 .

Base64 tidak memberikan checksum atau nilai apa pun untuk penyimpanan.

Encoding Base64 meningkatkan kebutuhan penyimpanan sebesar 33% dibandingkan format biner mentah. Ini juga meningkatkan jumlah data yang harus dibaca dari penyimpanan persisten, yang umumnya masih merupakan hambatan terbesar dalam komputasi. Biasanya lebih cepat untuk membaca lebih sedikit byte dan mengkodekannya dengan cepat. Hanya jika sistem Anda terikat CPU, bukan terikat IO, dan Anda secara teratur mengeluarkan gambar di base64, maka pertimbangkan untuk menyimpan di base64.

Gambar sebaris (gambar yang disandikan base64 yang disematkan dalam HTML) adalah hambatan itu sendiri--Anda mengirim 33% lebih banyak data melalui kabel, dan melakukannya secara serial (browser web harus menunggu gambar sebaris sebelum dapat menyelesaikan pengunduhan halaman HTML).

Jika Anda masih ingin menyimpan gambar yang dikodekan base64, tolong, apa pun yang Anda lakukan, pastikan Anda tidak menyimpan data yang dikodekan base64 di kolom UTF8 lalu mengindeksnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menyimpan tanggal berulang dengan mengingat Waktu Musim Panas

  2. MySQL - KESALAHAN 1045 - Akses ditolak

  3. Setara dengan RowID Oracle di MySQL

  4. Menggunakan MySQL dengan Entity Framework

  5. beberapa kueri tabel yang sama tetapi di kolom yang berbeda mysql