sql >> Database teknologi >  >> RDS >> Oracle

Lagring af uploadede billeder:Skal det gemmes på serveren eller i databasen?

Ja, du kan bruge BLOB'er til binære data i Oracle. (Og mange andre databaser.) Vi bruger dem her til at gemme PDF-filer.

Jeg har set det gjort enten / begge veje. Gem billederne i databasen, eller gem billederne i filsystemet og gem derefter filnavnet i databasen.

Fordele ved lagring i database

Det er okay der i databasen. Du trækker en plade ud, det tilhørende billede er lige der med den.

Du får dataintegritet mellem filen og dens tilknyttede data (forudsætter selvfølgelig et godt skemadesign.)

En logisk operation for at få data og billede.

Jeg finder det sværere og dyrere at skalere en database til at indeholde mange binære data end filsystemalternativet.

Ulemper ved lagring i database

Ikke alle værktøjer vil gøre det nemt at gennemse billederne.

Kan ikke nemt få adgang til billederne fra nettet.

Afhængigt af filstørrelse og -mængde kan du ende med en masse rådata i nogle af dine tabeller.

Indlæsning og lagring af blob-data er ikke altid ligetil. (Jeg har for nylig skrevet en brugerdefineret datatype til Hibernate, for eksempel til at håndtere vores blubbede PDF'er.)

Fordele ved filsystemet

Sandsynligvis mere effektiv til at læse og skrive filerne.

Hvis du vil vise billedet på nettet, kan du gøre det direkte fra filsystemet.

Lettere at gennemse billeder under fejlfinding, og masser af gratis værktøjer til at gøre dette.

Jeg tror, ​​det er nemmere at skalere en applikation, når du sætter blobs i filsystemet.

Ulemper ved filsystemet

Problemer med dataintegritet/konsistens. Ændre noget ved filstrukturen, og du har endnu et trin at gøre i databasen.

Det er en anden ting at tage backup af.

Flere logiske operationer (læs fra database, læs fra filsystem) for at opnå billede og data.



  1. Kør Oracle Client i 32-bit tilstand på en 64-bit maskine

  2. Hvordan opretter man forbindelse til Amazon RDS via SSL?

  3. Hent tidsstemplet for en fil ved hjælp af PL/SQL

  4. Android:Json er ikke i stand til at hente nogen filer fra mysql-databasen, den er tom