sql >> Databáze >  >> RDS >> Mysql

Ukládání obrázku do databáze přímo nebo jako data base64?

Tvrdím, že obrázky (soubory) NEJSOU obvykle uloženy v databázi zakódované v base64. Místo toho jsou uloženy ve své nezpracované binární podobě v binárním (blob) sloupci nebo souboru.

Base64 se používá pouze jako transportní mechanismus, nikoli pro skladování. Můžete například vložit obrázek kódovaný base64 do dokumentu XML nebo e-mailové zprávy.

Base64 je také přátelský ke streamování. Můžete kódovat a dekódovat za běhu (aniž byste znali celkovou velikost dat).

Base64 je sice vhodný pro přepravu, neuchovávejte však obrázky zakódované v base64 .

Base64 neposkytuje žádný kontrolní součet ani nic jiného, ​​co by mělo nějakou hodnotu pro ukládání.

Kódování Base64 zvyšuje požadavky na úložiště o 33 % oproti surovému binárnímu formátu. Zvyšuje také množství dat, která musí být načtena z trvalého úložiště, což je stále obecně největší problémové místo ve výpočetní technice. Obecně je rychlejší číst méně bajtů a kódovat je za běhu. Pouze pokud je váš systém vázán na CPU místo IO a pravidelně odesíláte obraz v base64, zvažte uložení v base64.

Vložené obrázky (obrázky zakódované v kódování base64 vložené do HTML) jsou samy o sobě úzkým hrdlem – posíláte o 33 % více dat po drátě a děláte to sériově (webový prohlížeč musí čekat na vložené obrázky, než dokončí stahování stránky HTML).

Pokud si přesto přejete ukládat obrázky v kódování base64, ať už děláte cokoli, ujistěte se, že data kódovaná v base64 neukládáte do sloupce UTF8 a poté je indexujte.



  1. Mohu použít ADFS 2.0 k ověření určitých uživatelů proti SQL Server?

  2. Je lepší používat více databází s jedním schématem, nebo jednu databázi s více schématy?

  3. Jak mohu použít spouštěče PostgreSQL k ukládání změn (příkazy SQL a změny řádků)

  4. SQL Server:Úniky úrovně izolace mezi sdruženými připojeními