sql >> Databáze >  >> RDS >> Oracle

Ukládání nahraných obrázků:Měly by být uloženy na serveru nebo v databázi?

Ano, můžete použít objekty BLOB pro binární data v Oracle. (A mnoho dalších databází.) Používáme je zde k ukládání souborů PDF.

Viděl jsem to udělat buď / oběma způsoby. Uložte obrázky do databáze nebo uložte obrázky do systému souborů a poté uložte název souboru do databáze.

Výhody ukládání do databáze

V databázi je vše v pořádku. Vytáhnete záznam a příslušný obrázek je přímo u něj.

Získáte integritu dat mezi souborem a jeho přidruženými daty (samozřejmě za předpokladu dobrého návrhu schématu.)

Jedna logická operace pro získání dat a obrazu.

Připadá mi těžší a dražší škálovat databázi tak, aby obsahovala hodně binárních dat, než alternativa systému souborů.

Nevýhody ukládání do databáze

Ne všechny nástroje usnadní procházení obrázků.

Nelze snadno přistupovat k obrázkům z webu.

V závislosti na velikosti a množství souboru můžete v některých tabulkách skončit se spoustou nezpracovaných dat.

Načítání a ukládání dat objektů blob není vždy přímočaré. (Nedávno jsem napsal vlastní datový typ pro Hibernate, například pro práci s našimi blobovanými PDF.)

Výhody systému souborů

Pravděpodobně efektivnější pro čtení a zápis souborů.

Pokud chcete obrázek zobrazit na webu, můžete to udělat přímo ze systému souborů.

Snazší procházení obrázků během ladění a spousta bezplatných nástrojů k tomu.

Věřím, že při vkládání objektů BLOB do systému souborů bude jednodušší škálovat aplikaci.

Nevýhody systému souborů

Problémy s integritou/konzistencí dat. Změňte něco ve struktuře souborů a máte další krok v databázi.

Další věc je zálohování.

Více logických operací (čtení z databáze, čtení ze systému souborů) pro získání obrazu a dat.



  1. Jak importuji tento datový soubor do tabulky Mysql

  2. Zabezpečení MySQL – využití práv pro přístup k datům pro bezpečnou instalaci

  3. Existuje omezení délky dotazu v mysql?

  4. Jak se dotazovat na prvek JSON