Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Przechowywanie obrazu bezpośrednio w bazie danych czy jako dane base64?

Twierdzę, że obrazy (pliki) zwykle NIE są przechowywane w bazie danych zakodowanej w base64. Zamiast tego są przechowywane w swojej surowej postaci binarnej w kolumnie binarnej (blob) lub pliku.

Base64 jest używany tylko jako mechanizm transportu, a nie do przechowywania. Na przykład możesz osadzić obraz zakodowany w base64 w dokumencie XML lub wiadomości e-mail.

Base64 jest również przyjazny dla strumieni. Możesz kodować i dekodować w locie (bez znajomości całkowitego rozmiaru danych).

Chociaż base64 jest w porządku do transportu, nie przechowuj obrazów zakodowanych w base64 .

Base64 nie zapewnia żadnej sumy kontrolnej ani niczego o jakiejkolwiek wartości do przechowywania.

Kodowanie Base64 zwiększa wymagania dotyczące pamięci o 33% w stosunku do nieprzetworzonego formatu binarnego. Zwiększa również ilość danych, które muszą być odczytane z pamięci trwałej, która nadal jest największym wąskim gardłem w obliczeniach. Generalnie szybciej można odczytać mniej bajtów i zakodować je w locie. Tylko jeśli twój system jest powiązany z procesorem, a nie z IO i regularnie wysyłasz obraz w base64, rozważ przechowywanie w base64.

Obrazy wbudowane (obrazy zakodowane base64 osadzone w HTML) same w sobie są wąskim gardłem — przesyłasz o 33% więcej danych przez sieć i robisz to szeregowo (przeglądarka internetowa musi poczekać na obrazy wbudowane, zanim będzie mogła zakończyć pobieranie strony HTML).

Jeśli nadal chcesz przechowywać obrazy zakodowane w base64, cokolwiek robisz, upewnij się, że nie przechowujesz danych zakodowanych w base64 w kolumnie UTF8, a następnie zindeksuj je.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wskazówki dotyczące monitorowania MySQL dla Moodle

  2. Jak przeprowadzić migrację z Oracle do MySQL / Percona Server

  3. Napraw „BŁĄD 1054 (42S22):Nieznana kolumna „…” w „klauzula zamówienia” podczas używania UNION w MySQL

  4. Ogłoszenie MySQL 5.6 EOL

  5. Tworzenie aplikacji internetowej od podstaw przy użyciu Python Flask i MySQL:część 2