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.