sql >> Database teknologi >  >> RDS >> Mysql

Hvornår skal man gemme billeder i en database (mySQL) og hvornår ikke? (Linker billede til element i databasen)

Fordele ved at gemme billeder/blobs i databasen

  • At gemme billederne er automatisk en del af dine transaktioner
  • Ingen grund til at rydde op i filsystemet og synkronisere det med databasen
  • Adgang til billederne styres på samme måde som adgang til resten af ​​dataene
  • Kun én enkelt sikkerhedskopi at bekymre sig om
  • En database er normalt bedre egnet til lagrede millioner (hvis ikke milliarder) poster. I filsystemet skal du finde en smart fordeling over flere mapper. En enkelt mappe vil ikke være i stand til at håndtere millioner af filer effektivt.
  • For nogle arbejdsbelastninger kunne lagring af billederne i databasen faktisk være hurtigere.
    For SQL Server har Microsoft faktisk testet dette:
    http://research.microsoft.com/apps/pubs/default.aspx?id=64525
    Jeg ville ikke blive overrasket, hvis andre databaser opførte sig på lignende måde.

Ulemper:

  • Gør din database og dermed dine backups meget større (tænk på den tid det tager at gendanne den).
  • filsystemer er normalt bedre med inkrementelle sikkerhedskopier (medmindre du har Oracles RMAN altså)
  • billederne kan ikke tilgås af andre applikationer (f.eks. en webserver, værktøjer til billedstørrelsesændring, FTP-server)
  • Billeder kan ikke spredes på tværs af et indholdsdistributionsnetværk til belastningsbalancering i en webapplikation (for at fjerne belastningen fra applikationsserveren)
  • den almindelige opfattelse er, at hentning fra databasen vil være langsommere.
  • for nogle databaser kan hentning af blobs faktisk reducere effektiviteten af ​​databasecachen (ikke tilfældet for Oracle, SQL Server og PostgreSQL. Jeg kender dog ikke til MySQL)


  1. Indsæt en arabisk tekst MySQL

  2. Sådan installeres Adminer på sin egen app

  3. Vælg den største værdi for hver sidste 7 dage

  4. Konverter 'datetime' til 'time' i SQL Server (T-SQL-eksempler)