sql >> Databasteknik >  >> RDS >> Oracle

Lagra uppladdade bilder:Ska det lagras på servern eller i databasen?

Ja, du kan använda BLOB för binär data i Oracle. (Och många andra databaser.) Vi använder dem här för att lagra PDF-filer.

Jag har sett det gjort på båda sätten. Lagra bilderna i databasen, eller lagra bilderna i filsystemet och spara sedan filnamnet i databasen.

Fördelar med att lagra i databasen

Det är okej där i databasen. Du drar ut en skiva, den tillhörande bilden är där med.

Du får dataintegritet mellan filen och dess associerade data (förutsätter naturligtvis en bra schemadesign.)

En logisk operation för att få data och bild.

Jag tycker att det är svårare och dyrare att skala en databas för att hålla mycket binär data än filsystemalternativet.

Nackdelar med att lagra i databasen

Alla verktyg kommer inte att göra det lätt att bläddra i bilderna.

Kan inte lätt komma åt bilderna från webben.

Beroende på filstorlek och kvantitet kan du få mycket rådata i vissa av dina tabeller.

Att ladda och lagra blobdata är inte alltid direkt. (Jag skrev nyligen en anpassad datatyp för Hibernate, till exempel för att hantera våra blubbade PDF-filer.)

Fördelar med filsystemet

Förmodligen effektivare för att läsa och skriva filerna.

Om du vill visa bilden på webben kan du göra det direkt från filsystemet.

Lättare att bläddra i bilder under felsökning, och massor av gratisverktyg för att göra detta.

Jag tror att det är lättare att skala en applikation när du lägger blobbar i filsystemet.

Nackdelar med filsystemet

Dataintegritet/konsistensproblem. Ändra något i filstrukturen så har du ytterligare ett steg att göra i databasen.

Det är en annan sak att säkerhetskopiera.

Flera logiska operationer (läs från databas, läs från filsystem) för att erhålla bild och data.



  1. Hur väljer du alla kolumner, plus resultatet av en CASE-sats i oracle 11g?

  2. Vad är SQL-operatörer och hur fungerar de?

  3. Kan ett bord ha flera primärnycklar?

  4. Vitlista IP-adressintervall med cPanel